![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
LeetCode算法学习
好奇养活小猫
这个作者很懒,什么都没留下…
展开
-
15. 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]输入:nums = [0,1,1]输入:nums = [0,0,0]解释:唯一可能的三元组和为 0。输出:[[0,0,0]]原创 2023-03-21 21:27:18 · 248 阅读 · 0 评论 -
9. 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?例如,121 是回文,而 123 不是。输入:x = -121。输入:x = 121。原创 2023-03-21 21:25:28 · 52 阅读 · 0 评论 -
7. 整数反转
如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。假设环境不允许存储 64 位整数(有符号或无符号)。输入:x = -123。输入:x = 123。输入:x = 120。原创 2023-03-21 21:19:41 · 52 阅读 · 0 评论 -
6. N 字形变换
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。输入:s = "PAYPALISHIRING", numRows = 3。输入:s = "PAYPALISHIRING", numRows = 4。输入:s = "A", numRows = 1。输出:"PAHNAPLSIIGYIR"输出:"PINALSIGYAHRPI"示例模板:通第一种方法类似。原创 2023-05-11 19:57:27 · 457 阅读 · 0 评论 -
5.最长回文子串——Manacher(马拉车)算法
(2)若d[r-i+l] > r-i+1(对称点回文半径还在盒外),则令d[i]=r-i,从r往后暴力枚举。3.求出d[i]后,如果i+d[i]-1>r,则更新盒子l=i-d[i]+1,r=i+d[i]-1。(1)若d[r-i+l]原创 2023-05-11 19:54:44 · 381 阅读 · 0 评论 -
4. 寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]算法的时间复杂度应该为 O(log (m+n))。解释:合并数组 = [1,2,3] ,中位数 2。输出:2.00000。输出:2.50000。原创 2023-03-21 21:06:15 · 298 阅读 · 0 评论 -
3. 无重复字符的最长子串——滑动窗口
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。输入: s = "abcabcbb"s 由英文字母、数字、符号和空格组成。输入: s = "pwwkew"输入: s = "bbbbb"原创 2023-03-21 21:01:18 · 75 阅读 · 0 评论 -
2. 两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]输入:l1 = [2,4,3], l2 = [5,6,4]请你将两个数相加,并以相同形式返回一个表示和的链表。每个链表中的节点数在范围 [1, 100] 内。输入:l1 = [0], l2 = [0]输出:[8,9,9,9,0,0,0,1]题目数据保证列表表示的数字不含前导零。输出:[7,0,8]原创 2023-03-20 22:48:24 · 188 阅读 · 0 评论 -
1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?输入:nums = [3,3], target = 6。原创 2023-03-20 22:36:36 · 180 阅读 · 0 评论