随笔分类 - 代码随想录
摘要:第454题.四数相加II 力扣题目链接 基本思路 要求的是有多少个组合满足,最坏循环遍历四个;最好分成两组,把一组a+b的和放到map的key,和出现的次数作为value,计算另一组,如果 0-(c+d) 在map中出现过的话,就用count把map中key对应的value也就是出现次数统计出来 方
阅读全文
摘要:判断一个元素是否出现过的场景 242.有效的字母异位词 力扣题目链接 基本思路 用record数组记录字符串出现过的字母,遍历第一个字符串增加数组对应位置的值,遍历第二个字符串减少数组对应位置的值。最终如果数组所有位置为0,则说明两个字符串是字母异位词。 方法代码 class Solution {
阅读全文
摘要:24. 两两交换链表中的节点 力扣题目链接 基本思路 迭代,注意指针模拟操作,定义虚拟头节点用来指向链表 递归 迭代 class Solution { public ListNode swapPairs(ListNode head) { ListNode dummy = new ListNode(0
阅读全文
摘要:构造链表 public class ListNode { // 结点的值 int val; // 下一个结点 ListNode next; // 节点的构造函数(无参) public ListNode() { } // 节点的构造函数(有一个参数) public ListNode(int val)
阅读全文
摘要:977.有序数组的平方 力扣题目链接 基本思路 暴力解法,先全部平方,然后排序 双指针法,由于原本数组是有序的,从负数到正数,平方之后最大数只会出现在两端的位置。考虑设置一个新数组存放排序后的元素,利用相向指针判断选择要把哪个元素先放入新数组。 暴力排序 class Solution { publi
阅读全文
摘要:704. 二分查找 力扣题目链接 基本思路 设定左右边界,找到中间值,根据中间值判断目标元素所在范围,更新边界。 二分法(左闭右闭) class Solution { public int search(int[] nums, int target) { int left = 0; int righ
阅读全文

浙公网安备 33010602011771号