随笔分类 -  LeetCode笔记

解题笔记相关
摘要:双指针 利用双指针的搜索,实质上双指针那部分很简单 记录本题主要是为了记录思想 题目 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 阅读全文
posted @ 2021-10-31 22:13 RetenQ 阅读(29) 评论(0) 推荐(0)
摘要:双指针 利用有序数组的特性进行合并 题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组 阅读全文
posted @ 2021-10-31 22:12 RetenQ 阅读(37) 评论(0) 推荐(0)
摘要:双指针——快慢指针 可以比较好诠释"快慢指针"用法的一道题 题目 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1: 输入:nu 阅读全文
posted @ 2021-10-31 22:11 RetenQ 阅读(43) 评论(0) 推荐(0)
摘要:双指针 "双指针是用来优化解的,不是拿来暴力的" 如果双指针被用于遍历,那就没有意义了,我还不如整个for 利用条件判断以及范围减小判断,利用双指针的优势,得到优解 题目 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 阅读全文
posted @ 2021-10-31 22:10 RetenQ 阅读(37) 评论(0) 推荐(0)
摘要:位运算 非常巧妙地利用了位运算中异或的性质 题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 题解 利用异或的性质 1.任何数和自己异或 阅读全文
posted @ 2021-10-31 22:08 RetenQ 阅读(44) 评论(0) 推荐(0)
摘要:位运算 经典之一个数是不是二的幂 题目 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。 示例 1: 输入:n = 1 输出:true 解释:20 = 1 示例 2 阅读全文
posted @ 2021-10-31 22:07 RetenQ 阅读(213) 评论(0) 推荐(0)
摘要:位运算 同意利用了位运算的特殊性质 n&(n-1)的用法 题目 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整 阅读全文
posted @ 2021-10-31 22:05 RetenQ 阅读(53) 评论(0) 推荐(0)
摘要:递归 题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l 阅读全文
posted @ 2021-10-30 11:00 RetenQ 阅读(31) 评论(0) 推荐(0)
摘要:深度搜索 经典之海岛岛屿 题目 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值为 1 的单元 阅读全文
posted @ 2021-10-30 10:59 RetenQ 阅读(77) 评论(0) 推荐(0)
摘要:深度搜索 和海岛问题一样的,最基础最经典的两道搜索问题 这里使用深度搜索解答 题目 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上 阅读全文
posted @ 2021-10-30 10:58 RetenQ 阅读(128) 评论(0) 推荐(0)
摘要:滑动窗口 中间一些步骤很好的诠释了“滑动窗口”的思想 题目 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 。 示例 1: 输入:s1 = "ab" s2 = "ei 阅读全文
posted @ 2021-10-30 10:57 RetenQ 阅读(347) 评论(0) 推荐(0)
摘要:双指针 经典的快慢指针,所以收录了 题目 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4 阅读全文
posted @ 2021-10-30 10:55 RetenQ 阅读(39) 评论(0) 推荐(0)
摘要:二分查找 旨在说明二分法则的比较条件可以看情况设置更合适的 题目 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i 阅读全文
posted @ 2021-10-30 10:51 RetenQ 阅读(61) 评论(0) 推荐(0)
摘要:其它 骚操作的解法还有两种,这里只记录了我能理解的,最简单粗暴的那个 https://leetcode-cn.com/problems/rotate-array/solution/xuan-zhuan-shu-zu-by-leetcode-solution-nipk/ 题目 给定一个数组,将数组中的 阅读全文
posted @ 2021-10-30 10:50 RetenQ 阅读(42) 评论(0) 推荐(0)
摘要:二分查找 一句话:干就完了 题目 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 题解 写了二分查找就老老实实用二分 cl 阅读全文
posted @ 2021-10-30 10:48 RetenQ 阅读(34) 评论(0) 推荐(0)
摘要:二分查找 二分查找,这题的重点主要在于范围和条件的判断 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 题解A class Solution { public int 阅读全文
posted @ 2021-10-30 10:44 RetenQ 阅读(36) 评论(0) 推荐(0)