LeetCode
哈特谢普苏特
海上生明月
展开
-
Leetcode88. 合并两个有序数组
使用双指针,从后往前插数据,用使用Index记录当前数组的位置class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { // System.arraycopy(nums2, 0, nums1, m, n); // Arrays.sort(nums1); ...原创 2020-03-24 17:58:33 · 90 阅读 · 0 评论 -
Leetcode8. 字符串转换整数 (atoi)
这种题好无聊,需要考虑很多条条框框。如“-+1”的输出结果是0而不是-1或者1.为实现这个目标,我们需要两个boolean型变量,一个用来判断是否出现了负号(有可能是负数),一个用来判断是否是数字(如-+)的情况就不是数字。如果它出现了负号并且出现了正号,表明这不是一个数字,返回0请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到...原创 2020-03-24 17:29:14 · 125 阅读 · 0 评论 -
Leetcode7整数反转
没有考虑到的问题:Integer的最大值(2147483647)问题,以为直接用栈即可。事实上并不是这样,如果一个数本来是int,但是反转后会超出最大值范围class Solution { public int reverse(int x) { String data = x +""; boolean flag = false; Sta...原创 2020-03-24 16:39:37 · 103 阅读 · 0 评论 -
Leetcode86. 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5对链表的掌握还是太菜,debug了半天,自己的理解是找出比...原创 2020-03-23 21:08:09 · 78 阅读 · 0 评论 -
Leetcode876. 链表的中间结点
给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans...原创 2020-03-23 18:16:41 · 91 阅读 · 0 评论 -
Leetcode945.使数组唯一的最小增量
最先想到Arrays.sort()用法,可以对数组进行排序,这样做测试是正确的,但是超过时间限制class Solution { public int minIncrementForUnique(int[] A) { Arrays.sort(A); int count = 0; for(int i = 1; i < A.length...原创 2020-03-22 19:02:28 · 127 阅读 · 0 评论 -
Leetcode28实现 strStr()
我不太明白,同样的例子'''',在Leetcode中是-1,然鹅在eclipse中是0然后我明白了,是""的原因,如果字串为空,则返回0的位置 实质上上KMP算法实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例...原创 2020-03-22 17:36:53 · 104 阅读 · 0 评论 -
Leetcode4. 寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组nums1 和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是...原创 2020-03-22 16:49:33 · 82 阅读 · 0 评论 -
Leetcoed 32. 最长有效括号
给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"一看就是stack,注意首先push(-1)class Solution { public int longest...原创 2020-03-21 18:21:10 · 105 阅读 · 0 评论 -
Leetcode20. 有效的括号
别问,问就是stack和map给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "...原创 2020-03-20 16:40:44 · 86 阅读 · 0 评论 -
leetcode3. 无重复字符的最长子串
示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串...原创 2020-03-20 15:51:50 · 89 阅读 · 0 评论 -
Leetcode16. 最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).菜鸡做法(我)class S...原创 2020-03-19 12:08:03 · 88 阅读 · 0 评论 -
Leetcode 23. 合并K个排序链表
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6/** * Definition for singly-linked list. * public cl...原创 2020-03-19 10:52:35 · 74 阅读 · 0 评论 -
leetcode238. 除自身以外数组的乘积s
给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6] 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且...原创 2020-03-18 14:29:06 · 131 阅读 · 0 评论 -
leetcode 18删除链表的倒数第n个结点
示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.如上,正常思路:链表的长度———>要删除的位置的前一个———>删除/** * Definition for singly-linked list. * public class ListNode {...原创 2020-03-18 12:24:36 · 80 阅读 · 0 评论 -
leetcode836
矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 2:输入:rec1 ...原创 2020-03-18 11:49:13 · 91 阅读 · 0 评论 -
leetcode两数之和
class Solution { public int[] twoSum(int[] nums, int target) { int data[] = new int[2]; for(int i=0;i<nums.length;i++){ for(int j = i+1; j < nums.length;j++){ ...原创 2019-09-08 20:26:48 · 88 阅读 · 0 评论 -
Leetcode Two Sum
这道题一看就是使用dict解决,如果字典中有,返回信息,如果没有,将遍历的值放到字典中class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """...原创 2018-06-17 18:50:24 · 131 阅读 · 0 评论