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 };

还可用二分法

posted @ 2022-07-09 15:34  balabalahhh  阅读(23)  评论(0)    收藏  举报