美文网首页
day4 removeElement & nextPer

day4 removeElement & nextPer

作者: 陈十十 | 来源:发表于2016-08-22 15:02 被阅读8次
    • To do
      又到了室内冻死人的季节



      两周了。。停滞在了这。。真是惭愧23333---
      今晚健身房回家后更番,明天开始早起刷一个半小时再去上班,7:40-9:10am

    1] Remove Element

        int removeElement(vector<int>& nums, int val) {
            int nextWritter = -1;
            for (int scanner=0; scanner<nums.size(); ++scanner) {
                if (nums[scanner]!=val) {
                    nums[++nextWritter] = nums[scanner];
                }
            }
            return nextWritter+1;
        }
    

    or

        int removeElement(vector<int>& nums, int val) {
            return distance( nums.begin(), remove(nums.begin(), nums.end(), val) );
        }
    

    2] Next Permutation
    一开始没有找清楚规律,看好pivot之右是什么情况,为什么

        void nextPermutation(vector<int>& nums) {
            if (nums.size() < 2) return;
            for (auto r=nums.end()-1; r>nums.begin(); --r) {
                if (*(r-1) < *r){
                    auto pivot = r-1;
                    for (auto i=nums.end()-1; i>=r; --i) {
                        if (*i>*pivot) {
                            swap(*i, *pivot); //CAREFUL NOT TO SWAP ITERATOR
                            reverse(pivot+1, nums.end());
                            return;
                        }
                    }
                }
            }
            reverse(nums.begin(), nums.end());
            return;
        }
    

    相关文章

      网友评论

          本文标题:day4 removeElement & nextPer

          本文链接:https://www.haomeiwen.com/subject/iiqgsttx.html