#189旋转数组
很快写出来但是用了个新数组,不好
void rotate(vector<int>& nums, int k) {vector<int> res(nums.size(),0);for(int i=0;i<nums.size();i++){int newi=i+k;if(newi>nums.size()-1) newi=newi%nums.size();res[newi]=nums[i];}nums=res;}
最好用原地的空间为O 1的做法: 好巧妙,翻转三次,其实和这些都好像的,我又给忘了
void rotate(vector<int>& nums, int k) {k = k % nums.size();reverse(nums.begin(), nums.end());reverse(nums.begin(), nums.begin() + k);reverse(nums.begin() + k, nums.end());}
#724寻找数组中心索引 easy
int pivotIndex(vector<int>& nums) {int sum=accumulate(nums.begin(),nums.end(),0);int sum1=0;int sum2=0;for(int i=0;i<nums.size();i++){sum2=sum-sum1-nums[i];if(sum1==sum2) return i;sum1+=nums[i];}return -1;}