当前位置:   article > 正文

力扣(LeetCode)初级算法第二弹(6~10)_乐扣算法

乐扣算法

6 两个数组的交集 II

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]

题目的要求就是找出两个数组中相同的元素。我们可以考虑使用双指针的方法,对两个数组进行排序然后指针进行遍历,由于已经排过序只用判断两个指针对应的值的大小就能完成遍历,再将判断好的两个值相等的元素加入list中。最后强制类型转换输出就好。

eg:上面大下面加,一样的是时候两个都加,下面大上面加。

代码实现:

7 加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例1:

输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
示例 2:

输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
示例 3:

输入:digits = [0]
输出:[1]

这个题其实不用把他当成数组看而是直接当成几个数字构成的一个数字,我们去给他进行加法的加一就行了。想是这么想我们实现的时候还是用数组去实现。

1,如果不是9我们就直接加,

2,如果是9我们就把那一个元素变成0,把下一个元素加1。

3,当出现99....99这种情况我们获取原数组的长度,新建一个数组并给第一个元素赋值为1.

代码实现

 8 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]
示例 2:

输入: nums = [0]
输出: [0]

这题的要求也很清晰,就是找到数组中的0,把他们放到末尾去。

这个题也可以用双指针来实现,j指针负责遍历数组,i指针遇到0++,

代码实现:

 

 9 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

这个题需要我们在数组中找到能组成目标值的两个元素,组成新的数组并返回。

这个题乍一看感觉暴力解就能解,只要2个for循环并进行判断就行,这题我们用HashMap键值对的方法求解。Key就是数组的元素,Value就是数组的下标,我们遍历数组传入值和下标,一边传一边判断如果key=(目标值-当前元素值)不为空我们就返回这两个数就行,否则返回{0,0}。

代码实现

 10 有效的数独
请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。

数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

 这题说实话我第一次没做出来,这个题用的官方的解题思路,

9宫格数独大家都玩过吧,就是每行,每列以及对应3*3的单元格内只能有1-9这9个数字,并且不能有重复的。

我们首先遍历9宫格的所有元素,然后使用3个二维数组遍历,记录对应的行,列以及3*3单元格是否有某个数字,如果出现冲突,直接返回false。大致思路就是这样这里只对里面的一个语句解释一下,注释说得不是很好

减一前面那一步确实是转化成数字,但是这并不是当成数字来使用的而是作为key,也就是下标来使用的,下面那个value是多少并没有什么关系,只要value重复就返回false所以是多少并没有什么关系。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/117719
推荐阅读
相关标签
  

闽ICP备14008679号