977.有序数组的平方
题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/
题目
给你一个按非递减顺序排序的整数数组
nums
,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
示例 1:
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]
代码
1 class Solution { 2 public: 3 vector<int> sortedSquares(vector<int>& nums) { 4 int k = nums.size()-1; 5 vector<int> result(nums.size(),0); 6 7 8 for (int i = 0, j = nums.size()-1; i <= j; ){ 9 if (nums[i]*nums[i] < nums[j]*nums[j]) { 10 result [k--] = nums[j]; 11 j--; 12 } 13 14 else if (nums[i]*nums[i] > nums[j]*nums[j]){ 15 result [k--] = nums[i]; 16 i++; 17 } 18 } 19 return result; 20 } 21 };
209.长度最小的子数组
题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/
题目
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
示例 1:
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组
[4,3]
是该条件下的长度最小的子数组。
代码
1 class Solution { 2 public: 3 int minSubArrayLen(int target, vector<int>& nums) { 4 int result = INT32_MAX; 5 int sum = 0; //滑动窗口之和 6 int i = 0; //滑动窗口起始位置 7 int sublength =0; //滑动窗口的长度 8 9 for(int j = 0;j <nums.size();j++){ 10 sum+=nums[j]; 11 while(sum >= target){ 12 sublength = j-i+1; 13 result = result<sublength ? result:sublength; 14 sum-=nums[i++]; //更新滑动窗口起始位置 15 } 16 } 17 return result == INT32_MAX? 0:result; 18 } 19 };标签:977,target,nums,int,随想录,result,数组,长度 From: https://www.cnblogs.com/myblogup/p/17013404.html