leetcode
mrhao61
这个作者很懒,什么都没留下…
展开
-
Leetcode 19. 删除链表的倒数第N个节点
题目1.一次遍历算法我们可以使用两个指针而不是一个指针。第一个指针从列表的开头向前移动 n+1 步,而第二个指针将从列表的开头出发。现在,这两个指针被 n 个结点分开。我们通过同时移动两个指针向前来保持这个恒定的间隔,直到第一个指针到达最后一个结点。此时第二个指针将指向从最后一个结点数起的第 n 个结点。我们重新链接第二个指针所引用的结点的 next 指针指向该结点的下下个结点。struc...原创 2020-02-25 14:43:10 · 112 阅读 · 0 评论 -
leetcode 387 by lbh
javapublic int firstUniqChar(String s) { if(s.length()<1)return -1; int m[]=new int[256]; int f[]=new int[256]; int ans=-1; for(int i=0;i<s.length();i++) { m[s.charAt(i...原创 2019-11-23 15:14:53 · 209 阅读 · 0 评论 -
leetcode 389. 找不同 by lbh
asc码计算javaclass Solution { public char findTheDifference(String s, String t) { int sum1=0; int sum2=0; for(int i=0;i<s.length();i++) { sum1+=s.charAt(i); } ...原创 2019-11-16 16:36:27 · 157 阅读 · 0 评论 -
leetcode 414. 第三大的数 by lbh
红黑树维护3个数的大小javaclass Solution { public int thirdMax(int[] nums) { if (nums == null || nums.length == 0) throw new RuntimeException("error"); TreeSet<Integer> set = new Tr...原创 2019-11-16 16:13:00 · 104 阅读 · 0 评论 -
leetcode 832. 翻转图像 by lbh
javaclass Solution { public int[][] flipAndInvertImage(int[][] A) { for(int i =0;i<A.length;i++) { for(int j=0;j<A[0].length/2;j++) { if(j!=A[0].length-j-1) { ...原创 2019-11-16 15:41:51 · 96 阅读 · 0 评论 -
leetcode 101. 对称二叉树 by lbh
java一开始没递归明白把传入参数从一个改到两个即可注意判断对称树,树的左孩子要和右孩子对称左孩子的左孩子和右孩子的右孩子左孩子的右孩子和右孩子的左孩子/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tree...原创 2019-11-16 15:04:08 · 72 阅读 · 0 评论 -
leetcode 12. 整数转罗马数字 by lbh
原题链接java贪心,一直选最大的数字就完了数组需要自己添一点(因为小数在做表示减)class Solution { public String intToRoman(int num) { int[] nums=new int[] {1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] roma=ne...原创 2019-11-16 14:39:07 · 89 阅读 · 0 评论 -
leetcode 28. 实现 strStr() by lbh
java先搞笑一波最快class Solution { public int strStr(String haystack, String needle) { return haystack.indexOf(needle); }}javaclass Solution { public int strStr(String haystack, St...原创 2019-11-16 13:45:50 · 79 阅读 · 0 评论 -
leetcode 58. 最后一个单词的长度by lbh
javasplit完事!class Solution { public int lengthOfLastWord(String s) { String[] tmp=s.split(" "); if(tmp.length==0)return 0; return tmp[tmp.length-1].length(); }}原创 2019-11-16 13:25:24 · 74 阅读 · 0 评论 -
leetcode 46. 全排列 by lbh
javaclass Solution { public void go(List<List<Integer>> ans,int[] nums,int pos,List<Integer> cur) { //System.out.println(cur); int len=nums.length; if(pos==len) { ans.a...原创 2019-11-16 13:15:16 · 85 阅读 · 0 评论 -
leetcode 242. 有效的字母异位词 by lbh
javaclass Solution { public boolean isAnagram(String s, String t) { if(s.length()!=t.length())return false; char[] fuck1=s.toCharArray(); Arrays.sort(fuck1); char[] fuc...原创 2019-11-16 11:11:00 · 61 阅读 · 0 评论 -
leetcode 1253. 重构 2 行二进制矩阵 by lbh
超时53/69public boolean go(List<List<Integer>> ans,int[][] res,int pos,int upper,int lower,int[] colsum) { if(!ans.isEmpty())return true; int len=colsum.length; if(pos==len) { int ...原创 2019-11-16 10:59:19 · 207 阅读 · 0 评论 -
leetcode 1252. 奇数值单元格的数目 by lbh
javaclass Solution {public: int oddCells(int n, int m, vector<vector<int>>& indices) { if(indices.size()==0)return 0; int res[n][m]={0}; for(int i=0;i<n;i++)...原创 2019-11-16 10:43:06 · 255 阅读 · 0 评论 -
leetcode 784. 字母大小写全排列 by lbh
回溯全排列ojbkjavapublic List<String> letterCasePermutation(String S) { List<String>anStrings=new ArrayList<String>(); solve(anStrings, S, 0, ""); return anSt...原创 2019-11-15 21:59:32 · 92 阅读 · 0 评论 -
leetcode 22. 括号生成 by lbh
java官方思路就相当于是从第一个字符是啥开始编(回溯),,,public boolean find(char[] cur) { int count=0; for(char i:cur) { if(i=='(') { count++; } else { count--; if(count<0)return false; } }...原创 2019-11-15 20:43:12 · 91 阅读 · 0 评论 -
leetcode 240. 搜索二维矩阵 II by lbh
java比遍历还慢的bsearchclass Solution { public boolean bsearch(int[] nums,int target) { int l=0; int r=nums.length-1; while(l<=r) { int mid=(l+r)/2; if(nums[mid]<target) { System...原创 2019-11-15 19:40:36 · 84 阅读 · 0 评论 -
leetcode 215. 数组中的第K个最大元素 by lbh
java快排然后返回len-kclass Solution { public void qsort(int[] nums,int low ,int high) { if(low<high) { int l=low; int r=high; int key=nums[l]; while(l<r) { while(l<r&am...原创 2019-11-15 19:15:15 · 68 阅读 · 0 评论 -
leetcode 24. 两两交换链表中的节点 by lbh
递归先判断 空或单个节点直接返回定义res为当前节点的next当前节点的next指向(下一对 交换过的)当前节点next的next的交换过的节点res.next指向当前节点返回res/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne...原创 2019-11-15 18:35:42 · 77 阅读 · 0 评论 -
leetcode 11. 盛最多水的容器 by lbh
java暴力法class Solution { public int maxArea(int[] height) { int n=height.length; int ans=0; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if((height[i]<...原创 2019-11-15 17:13:33 · 79 阅读 · 0 评论 -
leetcode 206. 反转链表 by lbh
翻转链表迭代法cur初始为头结点pre初始位空如果head空或只有一个节点直接返回headcur循环遍历tmp记录cur遍历到的位置让cur的下一个节点指向prepre指向cur(这样就反过来了,当前节点-》上一个节点)cur指向记录位置的next最后返回pre即可java/** * Definition for singly-linked list. * public...原创 2019-11-15 17:06:17 · 92 阅读 · 0 评论 -
leetcode 35. 搜索插入位置 by lbh
javafor循环遍历class Solution { public int searchInsert(int[] nums, int target) { for(int i=0;i<nums.length;i++) { if(target<=nums[i]) { return i; } ...原创 2019-11-15 16:41:27 · 71 阅读 · 0 评论 -
leetcode 21. 合并两个有序链表 by lbh
代码是否简洁直接决定这个方法能不能过。时间限制javapublic ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode ans=new ListNode(0); ListNode tmp=ans; while(l1!=null&&l2!=null) { if(l1.val<=l2.val...原创 2019-11-15 16:22:45 · 58 阅读 · 0 评论 -
leetcode 264. 丑数 II by lbh
暴力能过???c++class Solution {public: int nthUglyNumber(int n) { vector<int>nums; for(long a=1;a<=INT_MAX;a*=2) for(long b=a;b<=INT_MAX;b*=3) ...原创 2019-11-14 16:08:37 · 76 阅读 · 0 评论 -
leetcode 91. 解码方法 by lbh
思路简单dp也就是一维细节不少,容易出错c++iclass Solution {public: int numDecodings(string s) { if (s[0] == '0') return 0; int pre = 1, curr = 1;//dp[-1] = dp[0] = 1 for (int i = 1; i < s.size(); ...原创 2019-11-14 15:30:18 · 94 阅读 · 0 评论 -
leetcode 64. 最小路径和 by lbh
c++动态规划class Solution {public: int minPathSum(vector<vector<int> >& grid) { int m=grid[0].size(); int n=grid.size(); long int dp[m][n]; for(int i=0;i<m;i+...原创 2019-11-14 14:23:13 · 137 阅读 · 0 评论 -
leetcode 63. 不同路径 II by lbh
和上一道没有障碍物的相比就是多了点判断还是dp的c++class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { const size_t m = obstacleGrid.size(), n = obstacleG...原创 2019-11-14 13:24:02 · 79 阅读 · 0 评论 -
leetcode 62. 不同路径 by lbh
下面的方法,分支会超时38/62javaclass Solution { public void go(int i,int j,int[][] dp,int m,int n) { dp[i][j]++; if(i!=m) { go(i+1, j, dp,m,n); } if(j!=n) { go(i, j+1, dp, m, n); } } publ...原创 2019-11-14 12:54:57 · 65 阅读 · 0 评论 -
leetcode 5. 最长回文子串 by lbh
c++动态规划做法dp i j表示从i到j的字符串是否为回文class Solution {public: string longestPalindrome(string s) { if(s.length()<2){ return s; } int ans=0; int start=0; ...原创 2019-11-14 12:30:00 · 94 阅读 · 0 评论 -
leetcode 303. 区域和检索 - 数组不可变 by lbh
c++记录前nclass NumArray {public: NumArray(vector<int>& nums) : m_nums(nums) { partial_sum(m_nums.begin(), m_nums.end(), back_inserter(m_partial)); } int sumRang...原创 2019-11-14 11:05:23 · 88 阅读 · 0 评论 -
leetcode 198. 打家劫舍 by lbh
c++不好理解从第1到最后一家,考虑要不要抢。res之前存不抢的最大值ans之前抢的最大值(要求前一家没抢)、所以(res+现在)和(ans不加现在)比较最大class Solution {public: int rob(vector<int>& nums) { int res=0; int ans=0; f...原创 2019-11-14 10:44:22 · 103 阅读 · 0 评论 -
leetcode 121. 买卖股票的最佳时机 by lbh
c++暴力class Solution {public: int maxProfit(vector<int>& prices) { if(prices.size()<2){ return 0; } int ans=0; for(int i=0;i<prices.size()-1;i++){ ...原创 2019-11-14 10:31:34 · 54 阅读 · 0 评论 -
leetcode 70. 爬楼梯 by lbh
c++class Solution {public: int climbStairs(int n) { vector<int>res; res.push_back(1); res.push_back(2); for(int i=2;i<n;i++){ res.push_back(res[...原创 2019-11-14 10:11:26 · 152 阅读 · 0 评论 -
leetcode 283. 移动零 by lbh
c++记录不是零的个数即可在第end个位置赋值当前不为0的值最后其余的位置为0class Solution {public: void moveZeroes(vector<int>& nums) { int end=0; for(int i=0;i<nums.size();i++){ if(nums[i]!=0){ ...原创 2019-11-14 10:07:11 · 76 阅读 · 0 评论 -
leetcode 16. 最接近的三数之和 by lbh
java三指针class Solution {public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int res=Integer.MAX_VALUE; int ans=0; int k=0; int i=1; int ...原创 2019-11-13 18:49:04 · 71 阅读 · 0 评论 -
leetcode 15. 三数之和 by lbh
java三个指针k i j分别是第一个、第二个、第三个数排序之后第一个数从头第二个数跟在第一个数后边第三个数从最后开始如果三数之和大于零,说明第三个数大了,向前移位反之第二个数移位一次循环过后第一个数移位class Solution { public List<List<Integer>> threeSum(int[] nums) { List&...原创 2019-11-13 18:29:49 · 86 阅读 · 0 评论 -
leetcode 17. 电话号码的字母组合by lbh
java递归 到最后class Solution { public void find(String[] fuck,List<String> ans,String digits,int d,String now) { int dijige=Integer.valueOf(digits.charAt(d))-50; int strlen=fuck[dijige].lengt...原创 2019-11-13 17:18:48 · 112 阅读 · 0 评论 -
leetcode 977. 有序数组的平方 by lbh
java双指针做法更好一些,不想写了,回头补上class Solution { public int[] sortedSquares(int[] A) { for(int i=0;i<A.length;i++) { A[i]=A[i]*A[i]; } Arrays.sort(A); re...原创 2019-11-13 16:14:32 · 233 阅读 · 0 评论 -
leetcode 88. 合并两个有序数组 by lbh
javaclass Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i=m,j=0;i<m+n;i++,j++) { nums1[i]=nums2[j]; } for(int i=0;i<m+...原创 2019-11-13 16:08:18 · 71 阅读 · 0 评论 -
leetcode 53. 最大子序和 by lbh
java纯暴力不给过,200/202.动态规划:判断对加和是否有益;之前的加和为正就可以继续加,并和之前的最大值比较加和《=0》,将新的序列更新。并比较class Solution { public int maxSubArray(int[] nums) { int ans=nums[0]; int sum=0; for(int i=0;i&...原创 2019-11-13 15:52:09 · 86 阅读 · 0 评论 -
443. 压缩字符串
java累了不想解释class Solution { public int compress(char[] chars) { int ans=1; char tmp=chars[0]; int g=1; StringBuilder res = new StringBuilder(); res.append(tmp); ...原创 2019-11-13 15:12:28 · 101 阅读 · 0 评论