有哪些网站可以做任务,湖南平台网站建设公司,网站建设款属于什么科目,三字顺口公司名字通信 LCR 009. 乘积小于 K 的子数组268. 丢失的数字287. 寻找重复数 LCR 009. 乘积小于 K 的子数组
已解答
滑动窗口 给定一个正整数数组 nums和整数 k #xff0c;请找出该数组内乘积小于 k 的连续的子数组的个数。
示例 1:
输入: nums [10,5,2,6], k 100 输出: 8 解释… 通信 LCR 009. 乘积小于 K 的子数组268. 丢失的数字287. 寻找重复数 LCR 009. 乘积小于 K 的子数组
已解答
滑动窗口 给定一个正整数数组 nums和整数 k 请找出该数组内乘积小于 k 的连续的子数组的个数。
示例 1:
输入: nums [10,5,2,6], k 100 输出: 8 解释: 8 个乘积小于 100 的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。 需要注意的是 [10,5,2] 并不是乘积小于100的子数组。 示例 2:
输入: nums [1,2,3], k 0 输出: 0
int numSubarrayProductLessThanK(int* nums, int numsSize, int k){int count0;int cur1;//cur当前窗口乘积int i0,j0;if(k1){return 0;}for(i0,j0;inumsSize;i){curcur*nums[i];while(curk) curcur/nums[j];countcount(i-j1);}return count;}给定一个包含 [0, n] 中 n 个数的数组 nums 找出 [0, n] 这个范围内没有出现在数组中的那个数。
268. 丢失的数字
示例 1
输入nums [3,0,1] 输出2 解释n 3因为有 3 个数字所以所有的数字都在范围 [0,3] 内。2 是丢失的数字因为它没有出现在 nums 中。 示例 2
输入nums [0,1] 输出2 解释n 2因为有 2 个数字所以所有的数字都在范围 [0,2] 内。2 是丢失的数字因为它没有出现在 nums 中。 示例 3
输入nums [9,6,4,2,3,5,7,0,1] 输出8 解释n 9因为有 9 个数字所以所有的数字都在范围 [0,9] 内。8 是丢失的数字因为它没有出现在 nums 中。 示例 4
输入nums [0] 输出1 解释n 1因为有 1 个数字所以所有的数字都在范围 [0,1] 内。1 是丢失的数字因为它没有出现在 nums 中。
int SMALLtoBig(const void*a,const void*b){return(*(int*)a-*(int*)b);
}
int missingNumber(int* nums, int numsSize) {qsort(nums,numsSize,sizeof(int),SMALLtoBig);for(int i0;inumsSize;i){if(nums[i]!i){return i;}}return numsSize;
}287. 寻找重复数
给定一个包含 n 1 个整数的数组 nums 其数字都在 [1, n] 范围内包括 1 和 n可知至少存在一个重复的整数。
假设 nums 只有 一个重复的整数 返回 这个重复的数 。
你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。
示例 1
输入nums [1,3,4,2,2] 输出2 示例 2
输入nums [3,1,3,4,2] 输出3 示例 3 :
输入nums [3,3,3,3,3] 输出3
提示
1 n 105 nums.length n 1 1 nums[i] n nums 中 只有一个整数 出现 两次或多次 其余整数均只出现 一次
int findDuplicate(int* nums, int numsSize) {int midnumsSize/2;int count0;int l0,rnumsSize-1;while(lr){count0;for(int i0;inumsSize;i){if(nums[i]mid){count;}}if(countmid){rmid;mid(lr)/2;}else{lmid1;mid(lr)/2;}}return l;}