- 博客(9)
- 收藏
- 关注
原创 前缀和codeTop刷题
我们提前计算出所有元素之和 sums_,那么 sums_ - preSum - nums[i] 就是 i 位置右边元素之和。如果 preSum == sums_ - preSum - nums[i],那么 i 就是满足题目含义的「中心索引」位置。它的计算方法是从左向右遍历数组,当遍历到数组的 i 位置时,preSum表示 i 位置左边的元素之和。如果遍历完数组,都没有发现满足题意的「中心索引」,那么返回 -1。是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
2024-01-22 22:18:29
1738
原创 codetop求和问题
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。那么如何快速知道o(n)的信息呢,一种是通过哈希表,另一种则是排序,如果某两个数值大,后面肯定大。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。与 target 最接近的和是 2 (-1 + 2 + 1 = 2)不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。
2024-01-20 19:09:26
1099
原创 codetop排序刷题技巧
给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保你的题解可以被通过:更改数组nums,使nums的前k个元素包含唯一元素,并按照它们最初在nums中出现的顺序排列。nums的其余元素与nums的大小不重要。 返回k。class Solution {
2023-12-07 20:15:33
1804
1
原创 数组双指针技巧
由于数组已经排序,所以重复的元素一定连在一起,找出它们并不难。但如果毎找到一个重复元素就立即原地删除它,由于数组中删除元素涉及数据搬移,整个时间复杂度是会达到。但是现在题目让你原地删除,不允许 new 新数组,只能在原数组上操作,然后返回一个长度,这样就可以通过返回的长度和原始数组得到我们去重后的元素有哪些了。数组,把去重之后的元素放进这个新数组中,然后返回这个新数组即可。元素的顺序可以改变。移动到数组的末尾,同时保持非零元素的相对顺序。,返回删除后数组的新长度。的元素,并返回移除后数组的新长度。
2023-09-17 22:13:11
29
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人