![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
算法
淡墨@~无痕
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题日记:899. 有序队列
给定一个字符串 s 和一个整数 k。你可以从 s 的前 k 个字母中选择一个,并把它加到字符串的末尾。返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串。原创 2022-08-04 00:02:44 · 222 阅读 · 0 评论 -
LeetCode刷题日记:全排列
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有。原创 2022-08-03 16:42:34 · 101 阅读 · 0 评论 -
LeetCode刷题日记:135. 分发糖果
n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目。总的来说是先从左边遍历到右边,期间判断右边比左边大,然后相应赋值,再从右边遍历到左边,再赋值。......原创 2022-08-03 15:55:12 · 237 阅读 · 0 评论 -
LeetCode刷题日记:1545. 找出第 N 个二进制字符串中的第 K 位
给你两个正整数 n 和 k,二进制字符串 Sn 的形成规则如下:S1 = “0”当 i > 1 时,Si = Si-1 + “1” + reverse(invert(Si-1))其中 + 表示串联操作,reverse(x) 返回反转 x 后得到的字符串,而 invert(x) 则会翻转 x 中的每一位(0 变为 1,而 1 变为 0)。示例 3:输入:n = 1, k = 1输出:“0”思路:其实没啥好说的,看懂规律即可。...原创 2022-08-03 15:30:33 · 145 阅读 · 0 评论 -
LeetCode刷题日记:153、寻找旋转排序数组中的最小值
已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到若旋转4次,则可以得到[4,5,6,7,0,1,2]若旋转7次,则可以得到[0,1,2,4,5,6,7]注意,数组[a[0],a[1],a[2],…,a[n-1]]旋转一次的结果为数组[a[n-1],a[0],a[1],a[2],…,a[n-2]]。...原创 2022-08-02 00:45:06 · 69 阅读 · 0 评论 -
LeetCode刷题日记:LCP 03.机器人大冒险
力扣团队买了一个可编程机器人,机器人初始位置在原点(0,0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种U向y轴正方向移动一格R向x轴正方向移动一格。不幸的是,在xy平面上还有一些障碍物,他们的坐标用obstacles表示。机器人一旦碰到障碍物就会被损毁。给定终点坐标(x,y),返回机器人能否完好地到达终点。如果能,返回true;否则返回false。...原创 2022-08-02 00:23:50 · 217 阅读 · 0 评论 -
LeetCode刷题日记:搜索二维矩阵(一和二)
编写一个高效的算法来判断mxn矩阵中,是否存在一个目标值。该矩阵具有如下特性每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。原创 2022-08-01 22:37:43 · 106 阅读 · 0 评论 -
LeetCode刷题日记: 33、搜索旋转排序数组
整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0原创 2022-08-01 22:08:03 · 67 阅读 · 0 评论 -
LeetCode刷题日记:34、 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。......原创 2022-08-01 21:34:26 · 70 阅读 · 0 评论 -
LeetCode刷题日记:912. 排序数组
给你一个整数数组 nums,请你将该数组升序排列。示例 1:示例 2:提示:方法1:快速排序结果:方法2:堆排序结果:方法3:归并排序结果:方法4:计数排序结果:方法5:希尔排序结果:...原创 2022-07-09 14:59:06 · 225 阅读 · 0 评论 -
常用的排序算法(java版)
排序算法1、冒泡排序主要流程重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。基本算法原理1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有原创 2022-07-09 14:59:23 · 862 阅读 · 0 评论