LeetCode
gx1500291
这个作者很懒,什么都没留下…
展开
-
【LeetCode】面试题01.06 字符串压缩
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1: 输入:"aabcccccaaa" 输出:"a2b1c5a3"示例2: 输入:"abbccd" 输出:"abbccd" 解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。class Solution: def .原创 2021-01-31 19:45:03 · 318 阅读 · 0 评论 -
【LeetCode】整数反转
给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。输入:x = 123输出:321输入:x = -123输出:-321输入:x = 120输出:21输入:x = 0输出:0提示:-231 <= x <= 231 - 1def reverse(x:int) -> int:...原创 2021-01-30 10:59:11 · 206 阅读 · 0 评论 -
【LeetCode】136.只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1] 输出: 1示例 2:输入: [4,1,2,1,2] 输出: 4思路:将数组依次遍历,记录一个数出现的次数,最后输出出现一次的数class Solution { public int singleNumber(int[]...原创 2018-11-03 22:36:05 · 112 阅读 · 0 评论 -
【LeetCode】876.链表的中间节点
给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.ne...原创 2020-12-25 01:13:22 · 104 阅读 · 0 评论 -
【LeetCode】83.删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3class Solution { public ListNode deleteDuplicates(ListNode head) ...原创 2020-12-25 01:12:41 · 85 阅读 · 0 评论 -
【LeetCode】905.按奇偶排序数组
给定一个非负整数数组A,返回一个由A的所有偶数元素组成的数组,后面跟A的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。class Solution { public int[] sortArrayByParity(...原创 2020-12-25 01:13:40 · 177 阅读 · 0 评论 -
【LeetCode】852.山脉数组的峰顶元素
我们把符合下列属性的数组A称作山脉:A.length >= 3 存在0 < i< A.length - 1使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足A[0] < A[1] < ... A...原创 2020-12-25 01:13:01 · 144 阅读 · 0 评论 -
【LeetCode】922.按奇偶排序数组II
给定一个非负整数数组A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当A[i]为奇数时,i也是奇数;当A[i]为偶数时,i也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。class Solution {...原创 2020-12-25 01:11:51 · 145 阅读 · 0 评论 -
【LeetCode】234.回文链表
请判断一个链表是否为回文链表。示例 1:输入: 1->2 输出: false示例 2:输入: 1->2->2->1 输出: true 代码如下:class Solution { public boolean isPalindrome(ListNode head) { //如果是一条空链表或是...原创 2019-02-23 17:50:16 · 172 阅读 · 0 评论 -
【LeetCode】61.旋转链表
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4-原创 2019-02-24 18:15:05 · 226 阅读 · 0 评论 -
【LeetNode】2.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&g...原创 2019-02-24 19:16:25 · 225 阅读 · 0 评论 -
【LeetCode】219.存在重复元素II
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = [1,2...原创 2018-11-06 23:30:30 · 548 阅读 · 0 评论 -
【LeetCode】217.存在重复元素
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true思路:用循环遍历整个数组,在使用计数器记录相等元素,如果...原创 2018-11-06 23:21:20 · 200 阅读 · 1 评论 -
【LeetCode】35.搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0...原创 2018-11-23 12:27:27 · 129 阅读 · 0 评论 -
【LeetCode】203.移除链表元素
删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5 注意:一定要判断头结点是否为被删除的结点,如果要删除,则要修改头结点class Solution { public ListNode re...原创 2018-11-19 20:40:01 · 598 阅读 · 0 评论 -
【LeetCode】24.两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3思路:因为都是先交换两个节点,在合并。即可以转化为子问题求解。class Solution { public ListNode swapPairs(ListNode head) { //如果此...原创 2018-11-16 21:37:32 · 112 阅读 · 0 评论 -
【LeetCode】141.环形链表
给定一个链表,判断链表中是否有环。方法:双指针通过使用具有不同速度的快、慢两个指针遍历链表。慢指针每次移动一步,而快指针每次移动两步。如果列表中不存在环,最终快指针将会先到达尾部,此时可以直接返回false。如果存在环,把慢指针和快指针可以想象成在跑道上跑步的运动员,而快跑者最终一定会追上慢跑者。public class Solution { public boole...原创 2018-11-16 20:33:52 · 122 阅读 · 0 评论 -
【LeetCode】121.买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2018-11-16 19:39:55 · 139 阅读 · 0 评论 -
【LeetCode】344.反转字符串
编写一个函数,其作用是将输入的字符串反转过来。示例 1:输入: "hello"输出: "olleh"示例 2:输入: "A man, a plan, a canal: Panama"输出: "amanaP :lanac a ,nalp a ,nam A"思路:先将形参字符串转为字符数组 然后定义一个新的数组,将源数组的数据从后往前依次赋给新数组 ...原创 2018-11-13 22:38:12 · 102 阅读 · 0 评论 -
【LeetCode】206.反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路: class Solution { public ListNode reverseList(ListNode head) { if(head == null){ ...原创 2018-11-10 19:25:58 · 226 阅读 · 1 评论 -
【LeetCode】389.找不同
给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。思路:首先将两个字符串转为字符数组然后对两个数组的每个字符进行异或操作异或:a^a = 0;a^0 = a;...原创 2018-11-08 23:52:08 · 135 阅读 · 0 评论 -
【LeetCode】709.转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: "Hello"输出: "hello"示例 2:输入: "here"输出: "here"示例 3:输入: "LOVELY"输出: "lovely"思路:首先将字符串转为字符数组 然后通过遍历原创 2018-11-08 23:40:50 · 334 阅读 · 1 评论 -
【LeetCode】1.两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:遍历给定数组,判断数组中两个数之和是否等于给定值 如果找到则返...原创 2018-11-02 21:42:35 · 145 阅读 · 0 评论 -
【LeetCode】26.删除排序数组的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2: 给...原创 2018-11-21 17:53:13 · 112 阅读 · 0 评论