![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode习题集
北府刘寄奴
一年四季随机播放
展开
-
LeetCode之 无重复字符的最长子串(Longest Substring Without Repeating Characters)
1.1 LeetCode之 无重复字符的最长子串(Longest Substring Without Repeating Characters)题目:给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke.原创 2018-05-21 21:18:15 · 168 阅读 · 0 评论 -
LeetCode第29题:Divide Two Integers(Java+Python实现)
转战英文版Leetcode题目描述:java实现:采用计算机中位运算的概念进行求解,下面是代码:class Solution { public int divide(int dividend, int divisor) { if (dividend == Integer.MIN_VALUE && divisor == -1) retur...原创 2019-02-14 15:24:34 · 402 阅读 · 0 评论 -
LeetCode第33题:Search in Rotated Sorted Array在旋转有序数组中搜索(Java实现)
题目:我的解答:class Solution { //二分法的算法复杂度为O(lgn),即分治算法! public int search(int[] nums, int target) { int left=0; int right=nums.length-1; while(left<=right){ ...原创 2019-02-25 14:33:09 · 277 阅读 · 0 评论 -
Leetcode第37题:Sudoku Solver(java实现)
题目描述:解答:其中用到了递归,并且是一个一个按顺序进行放置值,如果值不符合要求就下一步class Solution { public boolean finished = false; public void solveSudoku(char[][] board) { List<int[]> empty_positions = new...原创 2019-03-05 14:43:58 · 381 阅读 · 0 评论 -
LeetCode第34题:Find First and Last Position of Element in Sorted Array在有序数组中寻找初始和结束位置(Java实现)
题目描述:我的解答:class Solution { //最简单的方法,分别从左边找和从右边找 public int[] searchRange(int[] nums, int target) { int[] targetIndex = {-1, -1}; //从左边找 for (int i = 0; i < n...原创 2019-03-02 11:13:26 · 362 阅读 · 0 评论 -
LeetCode第35题:Search Insert Position(Java实现)
题目描述:我的解答:class Solution { public int searchInsert(int[] nums, int target) { int index=-1; if(nums[nums.length-1]<target){ return(nums.length); } ...原创 2019-03-02 11:26:51 · 316 阅读 · 0 评论 -
LeetCode第36题:Valid Sudoku数独(Java实现)
题目描述我的解答:我的解答中利用了Set不能存储重复的原理。set.add()判断是否重复class Solution { public boolean isValidSudoku(char[][] board) { Set record=new HashSet(); for(int i=0;i<9;i++){ ...原创 2019-03-02 20:50:20 · 275 阅读 · 0 评论 -
LeetCode第38题:Count and Say(java实现)
题目描述:题目解答:class Solution { public String countAndSay(int n) { //需要用到StringBuilder工具 StringBuilder curr=new StringBuilder("1"); StringBuilder prev; //记录次数 ...原创 2019-03-06 15:45:10 · 238 阅读 · 0 评论 -
Leetcode第41题: First Missing Positive(java实现)
题目描述:题目解答:这道题目本人没有做出来,下面介绍的是他人的一组方法,觉得很有效。主要包括一下三步:第一步:将数组中大于0值和小于等于0的值进行分区,数组中前面的部分存储大于0的数值,如下:原数组是[-1,1,2,4,5,-5,6,-6],第一步后变成:[1, 2, 4, 5, 6, -5, -1, -6]第二步:将所有数值中满足正确顺序的数字去负数,则得到A中第一个正数...原创 2019-03-09 15:53:05 · 293 阅读 · 0 评论 -
Leetcode第42题: Trapping Rain Water(java实现)
题目描述:题目解答:class Solution { public int trap(int[] height) { List<Integer> local_highest_index=new ArrayList<>(); if(height.length<=1){ return 0;...原创 2019-03-10 13:47:01 · 284 阅读 · 0 评论 -
Leetcode第39题:Combination Sum(java实现)
题目描述:题目解答:class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target) { //首先对候选列表进行排序 Arrays.sort(candidates); List<List&...原创 2019-03-07 14:04:08 · 406 阅读 · 0 评论 -
Leetcode第43题: Multiply Strings(java实现)
题目描述:题目解答:题目的解答可以参考下面一张图片(来源于leetcodediscuss的热心网友),题目的解答方法来源于小学三年级学数学时的方法。class Solution { public String multiply(String num1, String num2) { int len_num1=num1.length(),len_num...原创 2019-03-11 09:29:37 · 294 阅读 · 0 评论 -
Leetcode第40题:Combination Sum2(java实现)
题目描述:题目解答:class Solution { public List<List<Integer>> combinationSum2(int[] candidates, int target) { Arrays.sort(candidates); List<List<Integer>> ou...原创 2019-03-07 22:16:08 · 252 阅读 · 0 评论 -
leetCode第44题. Wildcard Matching(java实现)
题目描述:题目解答(动态规划法解题):class Solution { public boolean isMatch(String s, String p) { //动态规划法 //构建变量进行判断,变量长度为s.length+1,注意:要加1 boolean[][] match=new boolean[s.length()+1...原创 2019-03-20 21:12:30 · 353 阅读 · 0 评论 -
LeetCode第47题: Permutations II(java+python实现)
做算法追求的不是看别人的答案时觉得恍然大悟,而是在得到自己的答案时,发现别人的想法居然和我相近,可惜我每次都是拜倒在她人石榴裙下!!!!题目描述:解答方案(网友cbmbbz的巧方法):和上题类似,但是在此基础添加了判断重复的方法下面是python代码class Solution: def permuteUnique(self, nums: List[int]) -...原创 2019-03-24 22:17:55 · 303 阅读 · 0 评论 -
LeetCode第45题:Jump Game II(java实现)
题目描述:题目解答:在Leetcode的Discuss中多数采用贪心算法,就是当前能跳多远就跳多远,而且还存在两种贪心算法,一种是从前往后跳,一种是从后往前跳。有一个重要的思想是:它既然能跳到前面,也可以稍微退后一点跳,结合下面的FarIndex的更新过程进行思考!下面是贪心算法的解答的算法:class Solution { //采用贪心算法求解,每一次跳到最远,...原创 2019-03-21 21:10:21 · 561 阅读 · 0 评论 -
LeetCode第32题:Longest Valid Parentheses最长有效括号(Java实现)
题目: 解答: class Solution { public int longestValidParentheses(String s) { int max=0; for(int i=0;i<s.length();i++){ for(int j=i+2;j<=s.length();j+=2){ ...原创 2019-02-24 17:06:54 · 180 阅读 · 0 评论 -
LeetCode第31题:Next Permutation下一个排序(Java实现)
题目如下:首先介绍一下什么是字典排序:对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字的排列 12354和12345,排列12345在前,排列12354在后。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 54321。(来自百度)。下面摆出我的答案:第一步:从后面往前判断,判断到哪里首...原创 2019-02-23 19:34:56 · 332 阅读 · 0 评论 -
LeetCode之最长回文子串
1.题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。2.我的解决方法package com.leetcode;public class LongestPalindromicSubstring { public static void main(String[] args) { // TODO Auto-generated method ...原创 2018-05-23 19:59:57 · 144 阅读 · 0 评论 -
LeetCode第15题三数之和(JAVA实现)
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]第一次的解决方案,可...原创 2018-08-28 22:36:44 · 578 阅读 · 0 评论 -
LeetCode:第十六题,最接近的三数之和(JAVA实现)
题目:我的解答:和第十五题很类似Arrays.sort(nums); int res=0; int differ=1111111; for(int k=0;k<nums.length;k++) { int i=k+1,j=nums.length-1; while(i<j) { int sum=nums[k]+nums[i]+nu...原创 2018-09-01 22:03:55 · 526 阅读 · 0 评论 -
LeetCode第17题:电话号码的字母组合(JAVA实现)
题目:我的解答:public static List<String> letterCombinations(String digits) { HashMap<Integer, String[]> map=new HashMap<>(); map.put(2, new String[]{"a","b","c"}); map.put(..原创 2018-09-02 09:44:18 · 1202 阅读 · 0 评论 -
LeetCode第18题:四数之和(JAVA实现)
题目:我的解答:public List<List<Integer>> fourSum(int[] nums, int target) { Arrays.sort(nums); List<List<Integer>> res=new ArrayList<>(); for(int i=0;i<nums.leng...原创 2018-09-02 10:33:52 · 742 阅读 · 0 评论 -
LeetCod第21题:合并两个有序链表(java实现)
题目我的解答:class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode listnode=new ListNode(0); ListNode listNode = listnode; while(l1!=null&...原创 2018-09-15 21:55:26 · 249 阅读 · 0 评论 -
LeetCode第22题:括号生成(java实现)
题目:解答:(并不是自己想出来的)第一种方法:暴力法(递归)解答如下:class Solution { public List<String> generateParenthesis(int n) { List<String> combinations = new ArrayList(); generateAll...原创 2018-09-17 08:52:37 · 635 阅读 · 0 评论 -
LeetCode第23题:合并K个有序链表(JAVA实现)
题目:我的解答:思路很简单,把所有的数据先读到ArrayList中然后转到数组中,然后排序,然后构建新链表代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { v...原创 2018-09-17 14:48:36 · 2290 阅读 · 0 评论 -
LeetCode第20题:有效的符号(JAVA实现)
题目如下:实现的过程中需要使用到stack(栈),栈有别于arraylist等,新添加一个数便将该数存在栈的顶端。java中栈的函数:Stack stack=new Stack();可以实现泛型形式stack.push();向栈中添加数据stack.peek();栈的顶部的数据stack.isEmpty();下面是算法实现的代码;public static b...原创 2018-09-10 18:56:05 · 830 阅读 · 0 评论 -
LeetCode第25题:k个一组翻转链表(JAVA实现)
题目:网络解答:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { /** ...原创 2018-10-11 10:45:07 · 1674 阅读 · 0 评论 -
LeetCode第24题:两两交换链表的节点(JAVA实现)
题目:我的解答:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListN...原创 2018-10-10 10:25:13 · 1354 阅读 · 0 评论 -
LeetCode第26题:删除排序数组中的重复项(JAVA实现)
题目描述:我的解答:原创 2018-10-21 22:27:45 · 478 阅读 · 0 评论 -
LeetCode第27题:移除元素(JAVA实现)
题目描述:我的解答:class Solution { public int removeElement(int[] nums, int val) { int len=nums.length; int i=0; for(int j=0;j<len;j++){ if(nums[j]!=val){ ...原创 2018-11-03 11:51:15 · 305 阅读 · 0 评论 -
LeetCode第28题:实现strStr()(Java+Python实现)
题目:java实现:class Solution { public int strStr(String haystack, String needle) { int lenHay=haystack.length(); int lenNeedle=needle.length(); int returnData=-1; ...原创 2019-02-07 23:49:09 · 248 阅读 · 0 评论 -
LeetCode第30题:Substring with Concatenation of All Words(Java实现)
题目:废话不多说,直接贴代码class Solution { public List<Integer> findSubstring(String s, String[] words) { List<Integer> ret=new LinkedList<>(); int size=words.length;...原创 2019-02-22 13:51:41 · 220 阅读 · 0 评论 -
LeetCode第46题:Permutations(java实现)
题目描述:解题答案:本题可以采用回溯法+递归实现,下面以输入为[1,2,3,]为例,对后面的代码进行一个直观的分析。tempResult变化情况如下(tempResult为下面代码中的一个变量):[1]---[1,2]---[1,2,3](添加)---[1,2]---[1]---[1,3]---[1,3,2](添加)---[1,3]---[1]---[]---[2]---[2,...原创 2019-03-23 16:51:27 · 525 阅读 · 0 评论