LeetCode 1,26题

26.删除排序数组中的重复项 1.两数之和

26. 删除排序数组中的重复项

LeetCode 1,26题_第1张图片
思路:
1.一个下标用来写数据,另一个下标用来遍历(i,j)
2.如果nums[i] < muns[j] 说明现在的 j 就是我们现在要找的数字,但是i还是在上一个位置,所以我们需要先让 i + 1,然后将 j 下标的数字赋值给 i 下标,并且记录有效数字count + 1
3.如果nums[i] = muns[j],就让 j + 1
4.返回 count + 1。
LeetCode 1,26题_第2张图片
LeetCode 1,26题_第3张图片
菜就完了。。。。

1. 两数之和

LeetCode 1,26题_第4张图片
看到题以后,哇,好简单,不就两个循环查找嘛,有手就行。
LeetCode 1,26题_第5张图片
。。。。。。。原因是倒数第二个测试用例
在这里插入图片描述
LeetCode 1,26题_第6张图片
当场裂开。。。。虽然算法没有问题,但是非常糟糕。开始寻找大神的解答。

大多数是使用字典模仿hash查找,这样可以减少查找第二个的下标索引!!!

思路:
1.一边循环往字典填充一边判断第二个下标是否存在
2.非常巧妙的是,先判断后往字典填充,为什么呐?原因是避免会出现同一个数字使用两遍的情况。先判断时,还没有将当前值填充字符,避免了判断之后又是自己的情况

LeetCode 1,26题_第7张图片LeetCode 1,26题_第8张图片
so 以后遇到查找数字或者其他东西时,使用字典也是一种不错的方法。
学到了,NB。

你可能感兴趣的:(LeetCode)