day13
1.剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
1 class Solution { 2 public: 3 vector<int> exchange(vector<int>& nums) { 4 int n = nums.size(); 5 int l = 0,r = n - 1; 6 while(l < r){ 7 if(nums[l] % 2 == 0 && nums[r] % 2 != 0){ 8 swap(nums[l],nums[r]); 9 l ++; 10 r --; 11 } 12 if(nums[l] % 2 != 0) 13 l ++; 14 if(nums[r] % 2 == 0) 15 r --; 16 } 17 return nums; 18 } 19 };
2.剑指 Offer 57. 和为 s 的两个数字
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) { 4 vector<int> res; 5 int n = nums.size(); 6 int i = 0,j = n - 1; 7 while(i < j){ 8 if(nums[i] + nums[j] == target) break; 9 else if(nums[i] + nums[j] > target) j --; 10 else i ++; 11 } 12 res.push_back(nums[i]); 13 res.push_back(nums[j]); 14 return res; 15 } 16 };
还可用二分法

浙公网安备 33010602011771号