- 博客(47)
- 收藏
- 关注
原创 80. 删除有序数组中的重复项 II
当指针j所处的位置符合不重复次数<3的条件时,num[i]=num[j],并且两个指针都右移。用双指针来做这道题目的原地变化,指针i表示当前需要赋值的位置,指针j表示当前计算的位置。如果指针j不符合,表示该位置不应该出现在数组,则j右移动,看下一个位置。删除重复出现的元素,使得出现次数超过两次的元素。并在使用 O(1) 额外空间的条件下完成。不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。结束条件:j到了最后的位置。
2025-06-17 14:50:00
250
原创 34. 在排序数组中查找元素的第一个和最后一个位置
请你找出给定目标值在数组中的开始位置和结束位置。简单的二分查找可以做到,这里锻炼一下双指针;给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。如果数组中不存在目标值。只要注意结束条件就可以了。
2025-06-16 22:05:53
261
原创 41. 缺失的第一个正数
第二种,数组的最小值等于1,那就有可能数组里有2,3,4之类的数字导致我们无法直接返回;这个时候,使用一个新数组来承接数组到1的步数,最差的情况就是数组是3,2,1这类完全覆盖的数组,所以这个数组的长度是原来数组长度+2,下标是原数组到1的步长。再次遍历原来的数组,让步长数组copy[nums[i]] = 1;可以分成两种情况,第一种,数组的最小值比1大,那就可以无脑return 1。因为最差情况,也就是刚好从1递增的都有,超出的不用考虑了。,请你找出其中没有出现的最小的正整数。最小的正数 1 没有出现。
2025-06-16 20:49:07
297
原创 68. 文本左右对齐
要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。只要掌握每种情况,然后直接写, 不需要动脑子。文本的最后一行应为左对齐,且单词之间不插入。,重新排版单词,使其成为每行恰好有。个字符,且左右两端对齐的文本。填充,使得每行恰好有。
2025-06-15 11:09:21
338
原创 64. 最小路径和
请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。计算该点到右下点的最小路径,分为向右和向左两种情况,计算更小值。剪枝/避免重复运算:用map记录已经计算过的值。返回:超出矩阵返回最大值,到达右下点返回数值。每次只能向下或者向右移动一步。给定一个包含非负整数的。
2025-06-15 10:03:15
195
原创 36. 有效的数独
可以用下标数组来判断有没有重复数字,只有1-9的话就创立数组,比如有9,那就a[9] +=1, 如果有数字大于1,则证明有重复。要判断的总共有9*3的数组:横排,竖排,9个小矩阵,做个map然后建立对应的数组即可;按照上面的方法判断重复。,验证已经填入的数字是否有效即可。
2025-06-14 16:18:45
341
原创 31. 下一个排列
由此,我们可以使用双指针,从最小位数开始比较,如果num[i]<num[j]则证明i,j的交换可以让数字变大,j从最小位开始逐步往前进行比较,i从倒数第二位开始,没有符合条件的话就继续往前。按照正常思路来说,我们尽量换:位数小的数字,并且在交换完数字后,对新的数组(交换完最高位后的所有数字)进行升序排列,这样能保证是下一个字典序数组。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的。
2025-06-14 15:34:02
461
原创 12. 整数转罗马数字
按照题目意思来看,我们只要根据每一位数进行计算即可,这样的话我们把每一位数字的罗马数字分成两组,一组是特殊的4,9;另一组就像算进制一样计算。罗马数字是通过添加从最高到最低的小数位值的转换而形成的。对于进制的算法,我们可以从大到小,如果能除则重复商次字母,余下的数字再进行计算。给定一个整数,将其转换为罗马数字。
2025-06-13 21:58:49
295
原创 13. 罗马数字转整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。给定一个罗马数字,将其转换成整数。非常简单的题目,把握好计算方法就行。,即为两个并列的 1。特殊的4,9 按照规律计算。
2025-06-13 21:16:39
159
原创 30. 串联所有单词的子串
给定一个字符串s和一些 长度相同 的单词words 。找出 s 中恰好可以由words 中所有单词串联形成的子串的起始位置。
2022-08-14 11:46:39
258
原创 56. 合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间
2022-08-07 20:45:01
146
原创 待看list
1. 从server上传递消息到另外一台机器,内核态转换次数2. mysql有3个B+树,可以存储多少的数据量3. mysql的主键索引和其他索引的数据结构差别,什么可以回航?什么不回航4. 排序的几类和相应的适用场景5. 在基本有序的情况下应该如何排序性能最好6. 有上亿级数据,前1万名精准输出,后采用范围输出,排名实时变化7. 数组中获取组合,得到之和为target8. 递归和回溯的区别9. 操作系统的分页、分片、分段10. 排序算法的稳定性11. 保证kafka
2022-04-14 19:21:36
2505
原创 6029. 射箭比赛中的最大得分
1. 背包问题 如何带路径回溯力扣Alice 和 Bob 是一场射箭比赛中的对手。比赛规则如下:Alice 先射 numArrows 支箭,然后 Bob 也射 numArrows 支箭。分数按下述规则计算:箭靶有若干整数计分区域,范围从 0 到 11 (含 0 和 11)。箭靶上每个区域都对应一个得分 k(范围是 0 到 11),Alice 和 Bob 分别在得分 k区域射中ak 和 bk 支箭。如果 ak >= bk ,那么 Alice 得 k 分。如果 ak &l..
2022-03-20 15:49:27
286
原创 23. 合并K个升序链表
题目:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-k-sorted-lists著...
2022-03-17 19:30:34
481
原创 24. 两两交换链表中的节点
题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。思考:1. 两两交换,首先想到了各种断开重组的情况,想到了用双指针的方式做;2. 断开后重组的过程可以分为两步1)断开形成两个新的子链表,链表结构为所有双数index的链表,和所有单数index的链表2)将这两个新的子链表合并,从单数开始合并,单数放到偶数前,直到遍历结束2)双数index的链表个数>=单数index链表的个数,可在遍
2022-03-16 11:08:52
1033
原创 17. 电话号码的字母组合
题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思考:递归,多加一个字母多加前面的所有可能性+最后一个字母的排列
2022-03-16 10:04:58
162
原创 如果 x 是一个回文整数
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是..
2022-03-12 16:37:59
2884
原创 最长回文子串
题目:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000s 仅由数字和英文字母组成来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring著作权归领扣网络所.
2022-03-12 14:55:23
1490
原创 生成所有可能的并且有效的括号组合
题目:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]思路:一开始的思路就是动态规划,n个数字产生的结果是由 R(n-1) 和R(1), R(n-2)和R(2)...这样的结果拼接起来的,保证拼接结果只产生一次即可。除了与R(1)结合会有放左边,放右边,放
2022-02-13 15:11:55
661
原创 翻转字符串里的单词
给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。思路:用栈,遇到空格判断push代码: public static String reverseWords(String s) {
2021-12-11 19:11:50
149
原创 除自身以外数组的乘积
题目描述:给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对...
2021-12-11 18:55:14
502
原创 Z 字形变换
题目描述:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);思...
2021-12-04 18:19:47
135
原创 买卖股票的最佳时机
题目:给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0思路:1. 首先想到用动态规划, 使用一个矩阵存储,dp[i][j]表示以i位置开始,j位置结束的最大利润,其中j位置必须作为卖出日期,这样保证遍历完所有结点其关系为:dp[i]...
2021-07-04 14:33:08
128
原创 不同路径(leetcode)
ti'mu一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。...
2021-06-08 21:45:40
113
原创 删除有序数组中的重复项
题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。思路:shi'y...
2021-06-08 21:04:54
124
原创 寻找两个正序数组的中位数
题目:给定两个大小为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位...
2021-02-21 21:56:34
126
原创 剑指 Offer 07. 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof...
2020-11-04 21:33:33
124
原创 剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。输入:head = [1,3,2]输出:[2,3,1]思路:1. 链表逆转2. 用栈public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public int[] reversePrint...
2020-11-04 20:41:54
117
原创 删除字符串中的所有相邻重复项
题目描述给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。..
2020-09-16 20:27:41
235
原创 最长有效括号
题目描述:给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"解题思路:事先声明不是最优解,最后超时了,但是还是发一下目前的思路,为之后学习和思考最优解做个铺垫哈。1)题目最长有效括号字串 -> 需要获取所有有效的括号,并且找到最长的字串2)有效括号可以使用递归的算法...
2020-09-13 22:42:09
179
原创 基于消息发送中间件的反思
最近项目需要使用JMS来进行消息收发,由于第一次接触,且业务场景为:将Web服务器部署于机器A, 通过Web点击触发部署于机器B的job看来许多资料,写一点心路历程1. ActiveMQ使用ActiveMQ是我在网上查询JMS相关资料看到的第一个中间件。但是ActiveMQ需要在机器上部署环境,相当于客户端A --> ActiveMQ 端口 -- >服务器B这样的过程就个人理解而言,这相当于最原始的中间件收发, 等于我们去创建一个新的服务器,以它作为媒介,两台机器同.
2020-07-31 23:35:20
194
原创 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:倒数第n个节点获取只需要设置两个指针, 两个指针同时从head开始, b指针与a指针之间的长度为n,然后ab指针同时往前走, 等到b指针走到末尾节点时,a指...
2020-07-20 20:52:53
168
原创 不含有重复字符的 最长子串 的长度
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,不是子串...
2020-07-19 21:19:43
2279
原创 两数相加 简单解法
题目:出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:这道题的解题思路非常简单,使...
2020-07-12 20:53:24
574
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅