
LeetCode
Jock.Liu
你以为失败的人生,也许是别人努力活着的结果!
展开
-
LeetCode||颜色分类--给定一个包含红色、白色和蓝色,一共 *n* 个元素的数组,**原地**对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。...原创 2019-11-18 21:02:22 · 2448 阅读 · 0 评论 -
LeetCode||有效的括号--给定一个只包括 `'('`,`')'`,`'{'`,`'}'`,`'['`,`']'` 的字符串,判断字符串是否有效。
题目描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4...原创 2019-11-18 20:45:34 · 892 阅读 · 0 评论 -
LeetCode||加一--给定一个由**整数**组成的**非空**数组所表示的非负整数,在该数的基础上加一。
题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...原创 2019-10-30 21:15:11 · 1220 阅读 · 0 评论 -
LeetCode||完全平方数--给定正整数 *n*,找到若干个完全平方数(比如 `1, 4, 9, 16, ...`)使得它们的和等于 *n*。你需要让组成和的完全平方数的个数最少。
题目描述给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.解析四平方定理。四平方定理讲的就是任何一个正整数都可以表示成不超过四个整数的...原创 2019-10-30 21:11:40 · 3227 阅读 · 0 评论 -
LeetCode||求众数--给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2题目解析题目意思很好理解:给你一个数组,里面有一个数字出现的次数超过了一半,你要找到这个数字并返回。解法一:暴力解法...原创 2019-10-30 21:07:50 · 1312 阅读 · 0 评论 -
LeetCode||罗马数字转整数
题目描述:整体思路:1.将String转为char数组 2.定义int变量num作为return的变量 3.干扰正常计数的情况只有IV、IX、XL、XC、CD、CM六种,所以我们遍历char数组,注意这次遍历从i = 0到i = ch.length - 1,因为要判断ch[i+1] 4.判断ch[i] 和 ch[i+1]的情况,假如满足IV或者IX,就把num-2,因为IV=4,...原创 2019-10-24 21:36:57 · 185 阅读 · 0 评论 -
LeetCode||最长公共前缀——编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。算法解析:输入的是一个字符串数组,需要分析的是字符串,既然是所有元素的公共前缀,那么必然是从元素开头开始,所以我们用遍历元素的方法:前面我们已经讲过了indexOf()和substring()方法,所以我们运用这两个方法就能解决问题程序class Solution ...原创 2019-09-20 15:35:39 · 2544 阅读 · 0 评论 -
LeetCode||实现 strStr()(java实现)
问题描述给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。算法描述String类包含有很多的方法,对这道题,我们要匹配字符串,需要两步,第一步找到开始的索引,第二步就是判断索引之后的needle.length()个元素是否和needle相等,完成这两个任...原创 2019-09-19 09:43:46 · 321 阅读 · 0 评论 -
LeetCode||回文数--判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121,输出: true示例2:输入: -121,输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10,输出: false 解释: 从右向左读, 为 01 。因此它不...原创 2019-08-16 21:18:14 · 2184 阅读 · 1 评论 -
LeetCode|| 搜索插入位置--给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。方法--遍历class Solution { public int searchInsert(int[] nums, int target) { for(int i = 0; i<nums.length ; i++){ ...原创 2019-08-21 21:19:36 · 1263 阅读 · 1 评论 -
LeetCode||给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入123 ,输出321;示例 2:输入-123,输出-321;示例 3:输入120,输出21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。算法:首先我们要知道整数数据类型的...原创 2019-08-16 13:42:01 · 937 阅读 · 0 评论 -
LeetCode||移除元素--给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
题目描述:给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。解析:根据题目说明,我们可以设想,最终返回的只需要是个整数即可,因为函数已经封装了返回的数组。所以,我们希望设置一个数组,让满足条件的值存到里面,不满足的就不存,这个很容易实现,只需要循环判断即可,最终要的值是把它的长度返回出来,题目很简单实现代码:...原创 2019-08-20 20:36:59 · 1948 阅读 · 0 评论 -
LeetCode||整数转罗马数字(Java)
原题链接:https://leetcode-cn.com/problems/integer-to-roman题目描述:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C ...原创 2019-08-18 20:32:46 · 819 阅读 · 0 评论 -
LeetCode||有效的字母异位词(排列)--给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词
原题链接:https://leetcode-cn.com/problems/valid-anagram题目描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你...原创 2019-08-18 19:39:12 · 2185 阅读 · 0 评论 -
LeetCode||查找字符串中的最长回文字符串
回文字符串回文字符串就是正着读和反着读都一样的字符串,例如abcdcba算法--动态规划用一个boolean类型的二维数组T[i][j]来表示i到j之间的字符串是否回文其中 i>=j 动态规划的初值就是 当i=j时,T[i][j]=true;动态规划的推导公式为当i=j+1时,T[i][j]=(Array[i]==Array[j]),相邻两元素是否相等当i>...原创 2019-08-01 16:51:55 · 977 阅读 · 0 评论 -
LeetCode||两数相加--给定两个 非空 链表来表示两个非负整数。位数按照 逆序 方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
题目描述:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。假设除了数字0之外,这两个数字都不会以零开头。示例:输入:(2->4->3)+(5->6->4)输出:7->0->8原因:342+465=807算法描述从...原创 2019-08-01 22:06:04 · 802 阅读 · 0 评论 -
LeetCode||两数之和--给定一个数组和一个目标值,找出数组中和为目标值的两个数
题目描述:给定一个数组和一个目标值,找出数组中和为目标值的两个数。假设每个输入只对应一种答案,而且同样的元素不能重复利用。示例:给定nums = [2,7,11,15],target = 9因为nums[0]+nums[1] = 2 + 7 = 9,所以返回[0 , 1]实现代码:封装:public static int[] TowSum(int[] nums, ...原创 2019-08-01 21:05:31 · 1439 阅读 · 0 评论 -
LeetCode||寻找两个有序数组的中位数--给定两个大小为 m 和 n 的有序数组 nums1 和 nums2
题目描述:给定两个大小为 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]...原创 2019-08-03 22:19:06 · 757 阅读 · 0 评论 -
LeetCode||无重复字符的最长子串--给定一个字符串,找出其中不含有重复字符的最长子串的长度。
题目描述:给定一个字符串,找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"...原创 2019-08-02 21:07:55 · 988 阅读 · 0 评论