
算法
文章平均质量分 86
han1254
计算机专业学生
展开
-
【刷题笔记】N皇后||回溯||符合思维方式
n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。原创 2023-12-14 10:58:21 · 498 阅读 · 0 评论 -
【刷题笔记】串联所有单词的子串||暴力通过||滑动窗口
给定一个字符串 s 和一个字符串数组 words。words 中所有字符串 长度相同。s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如,如果 words = [“ab”,“cd”,“ef”], 那么 “abcdef”, “abefcd”,“cdabef”, “cdefab”,“efabcd”, 和 “efcdab” 都是串联子串。“acdbef” 不是串联子串,因为他不是任何 words 排列的连接。返回所有串联子串在 s 中的开始索引。原创 2023-11-30 14:15:59 · 1084 阅读 · 0 评论 -
【刷题笔记】长度最小的子数组||二分查找||边界||数组
给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,4,4]输出:1。原创 2023-11-30 11:26:05 · 1284 阅读 · 0 评论 -
【刷题笔记】两数之和II_二分法||二分查找||边界||符合思维方式
对于二分查找有两个最重要的问题:`如何计算mid`,`如何跳转left和right`。原创 2023-11-29 11:10:42 · 1145 阅读 · 0 评论 -
【刷题笔记】匹配字符串||KMP||动图解析||符合思维方式
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。原创 2023-11-28 11:08:41 · 973 阅读 · 0 评论 -
【刷题笔记】H指数||数组||二分查找的变体
我们有一个有序数组[1, 2, ... , len(citiations)](表示为nums),我们有一个判定条件counter(nums[i]) >= i+1(i在这里是下标),我们需要从有序数组中找到最后一个符合条件的元素原创 2023-11-27 15:57:00 · 1185 阅读 · 0 评论 -
【刷题笔记】分糖果||数组||暴力通过||符合思维方式||多案例分析
题目让我们返回需要准备的最少糖果,最直接的想法就是:找到所有的波底分数对应的小孩,设置其糖果为1,然后朝着两边的波峰,逐步+1。原创 2023-11-27 10:32:50 · 1167 阅读 · 0 评论 -
【刷题笔记】加油站||符合思维方式
每两个站点之间的增加或者减少量是一定的,即任何两点之间连线的斜率是不变的(gas[i] - cost[i]),只要我们让最低值大于等于0,就可以保证走一圈。只要我们让最低值为出发点,不就能保证其为0了?给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。你从其中的一个加油站出发,开始时油箱为空。(参考上面的图,走一圈回来,相当于一共gas.length+1个站点)的数组。一开始的时候,剩余油量为0。出发时,剩余油量(或者说,初始油量)为0。原创 2023-11-26 21:46:52 · 703 阅读 · 0 评论 -
【刷题笔记】接雨水||暴力通过||符合思维方式
那么我们能做的就是从左到右,依次找到越来越高的值;保存其索引,从右到左,依次找到越来越高的值,保存其索引。然后计算这些索引之间的最大盛水面积,减去之间的柱子的面积,就是最后的接雨水的结果。原创 2023-11-26 21:14:44 · 727 阅读 · 0 评论 -
【刷题笔记】数组-双指针||覆盖||重复元素
【刷题笔记】数组-双指针||覆盖||重复元素。原创 2023-11-26 15:39:26 · 1130 阅读 · 0 评论 -
【Leetcode小解析】正则表达式匹配
10. 正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。原创 2022-11-12 17:09:26 · 755 阅读 · 0 评论 -
LeetCode笔记——977.有序数组的平方
题目977. 有序数组的平方给你一个按 非递减顺序排序的整数数组 nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104原创 2021-03-08 11:22:14 · 156 阅读 · 0 评论 -
LeetCode笔记——142.环形链表II
刚开始文章发到了牛客的题解里面了,但是原来的图被我误删了,只能用牛客上的图,这才有了双重水印,没有盗图哈????题目环形链表 II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例原创 2021-03-05 12:03:31 · 265 阅读 · 0 评论 -
LeetCode笔记——179. 最大数
题目179. 最大数剑指 Offer 45. 把数组排成最小的数给定一组非负整数 nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:“210”示例 2:输入:nums = [3,30,34,5,9]输出:“9534330”示例 3:输入:nums = [1]输出:“1”示例 4:输入:nums = [10]输出:“10”.原创 2021-02-21 14:41:21 · 1254 阅读 · 0 评论 -
LeetCode笔记——134. 加油站
题目134. 加油站在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入:gas = [1,2,3,4,5]cost = [3.原创 2021-02-18 22:25:39 · 425 阅读 · 0 评论 -
LeetCode小解析-1232.缀点连线
1232.缀点连线原题请戳这里1. 题目在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。示例 1:输入:coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]输出:true示例 2:输入:coordin原创 2020-08-22 14:53:50 · 206 阅读 · 0 评论 -
LeetCode小解析-1333.餐厅过滤器
1333. 餐厅过滤器原题戳这里1. 题目描述给你一个餐馆信息数组 restaurants,其中 restaurants[i] = [idi, ratingi, veganFriendlyi, pricei, distancei]。你必须使用以下三个过滤器来过滤这些餐馆信息。其中素食者友好过滤器 veganFriendly 的值可以为 true 或者 false,如果为 true 就意味着你应该只包括 veganFriendlyi 为 true 的餐馆,为 false 则意味着可以包括任何餐馆原创 2020-08-20 21:15:05 · 186 阅读 · 0 评论 -
图解算法-排序-冒泡和选择(正在写)
自己给自己挖坑,这些算法都是很简单的,但是我总想做出一些美观的,好看的算法图解,自己也只会用ppt,所以进行尝试,看能不能做出通俗易懂并且兼具视觉美观性的算法讲解,但是本人也是菜鸡一个,做的东西十分粗糙而且感觉不会给人一种豁然开朗的感觉,希望各位大佬多多指教。排序算法1. 冒泡排序1.1 动态感受这里的代码有一点小瑕疵,就是外层循环应该是i < arr.length - 11.2 算法解析如果你的专业跟计算机有关,那么你遇到的第一个排序算法估计就是冒泡排序。正如上图中,冒泡的直接思想原创 2020-08-17 00:11:08 · 133 阅读 · 0 评论