网站建设 考试题目,wordpress 枚举用户,网站建设有前景吗,新加坡域名注册商977. 有序数组的平方
简单 给你一个按 非递减顺序 排序的整数数组 nums#xff0c;返回 每个数字的平方 组成的新数组#xff0c;要求也按 非递减顺序 排序。 示例 1#xff1a; 输入#xff1a;nums [-4,-1,0,3,10] 输出#xff1a;[0,1,9,16,100] 解释#xff1a;平方…977. 有序数组的平方
简单 给你一个按 非递减顺序 排序的整数数组 nums返回 每个数字的平方 组成的新数组要求也按 非递减顺序 排序。 示例 1 输入nums [-4,-1,0,3,10] 输出[0,1,9,16,100] 解释平方后数组变为 [16,1,0,9,100] 排序后数组变为 [0,1,9,16,100] 示例 2 输入nums [-7,-3,2,3,11] 输出[4,9,9,49,121] 提示
1 nums.length 104 -104 nums[i] 104 nums 已按 非递减顺序 排序 进阶 请你设计时间复杂度为 O(n) 的算法解决本问题
代码
package __arrayimport sortfunc sortedSquares(nums []int) []int {n : len(nums)res : make([]int, 0)//判断需不需要分成两个数组进行比较//拆数组两个数组比较头l, r : 0, n-1zero : sort.SearchInts(nums, 0)l zero - 1if zero n nums[zero] 0 {r zero 1res append(res, 0)} else {r zero}for l 0 r n {if nums[l]*nums[l] nums[r]*nums[r] {res append(res, nums[r]*nums[r])r} else {res append(res, nums[l]*nums[l])l--}}for l 0 {res append(res, nums[l]*nums[l])l--}for r n {res append(res, nums[r]*nums[r])r}return res
}209. 长度最小的子数组
中等 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] 并返回其长度。如果不存在符合条件的子数组返回 0 。 示例 1 输入target 7, nums [2,3,1,2,4,3] 输出2 解释子数组 [4,3] 是该条件下的长度最小的子数组。
示例 2 输入target 4, nums [1,4,4] 输出1
示例 3 输入target 11, nums [1,1,1,1,1,1,1,1] 输出0 提示 1 target 109 1 nums.length 105 1 nums[i] 105
进阶 如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。
代码
func minSubArrayLen(target int, nums []int) int {n : len(nums)/*滑动窗口*/sum, res : nums[0], math.MaxInt32l, r : 0, 0for r n {for sum target {res minSubArrayLen_min(res, r-l1)sum - nums[l]l}rif r n {sum nums[r]}}if resmath.MaxInt32{return 0}return res
}func minSubArrayLen_min(i int, i2 int) int {if i i2 {return i} else {return i2}
}59.螺旋矩阵 II
中等 给你一个正整数 n 生成一个包含 1 到 n2 所有元素且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1 输入n 3 输出[[1,2,3],[8,9,4],[7,6,5]]
示例 2 输入n 1 输出[[1]]
提示 1 n 20
代码
package __arrayfunc generateMatrix(n int) [][]int {cnt : 1res : make([][]int, n)for i : 0; i n; i {res[i] make([]int, n)}for i : 0; i n; i {for j : i; j n-i; j {res[i][j] cntcnt}for j : i 1; j n-i; j {res[j][n-1-i] cntcnt}for j : n - 2 - i; j i; j-- {res[n-1-i][j] cntcnt}for j : n - 2 - i; j i; j-- {res[j][i] cntcnt}}return res
}