千川Maple
若今生挥剑荡天涯,谁与我共赴这繁华?
若明朝我失了天下,谁伴我村末数桃花?
——我是一条条弯路走过来的,所以我的博文会尽量写详细,希望看我写的文字的人,可以少走弯路
祝工作学习顺利
展开
-
LeetCode题目❤分类整理
前言这是根据LeetCode大佬noone_所编写的《有没有人一起从零开始刷力扣》优化的刷题表格,在原表格的基础上增加了引导链接,点击题目编号即可打开对应的题目。笔者也在刷,所以目前是刷一块维护一块,也算是督促自己学习。先按列表刷一遍,如果遇见其他好的题目我也会增添在里面。感谢noone_大佬用心维护了这样一份刷题列表,对学习的帮助很大。简介是不是有许多小伙伴在刷力扣的时候感觉无从下手?从头按顺序开始刷的童鞋们可能会比较有感触,为什么才第四题就感觉很难了?没关系,本文将对力扣的 1-700 题中原创 2021-01-25 10:15:45 · 5817 阅读 · 0 评论 -
LeetCode题目#1137(动态规划)——第 N 个泰波那契数
原题目及链接https://leetcode-cn.com/problems/n-th-tribonacci-number/解法记忆式递归:class Solution { // 1137.第 N 个泰波那契数 int[] cache = new int[40]; public int tribonacci(int n) { if (n == 0) { return 0; } if (n == 1原创 2022-03-24 03:04:55 · 518 阅读 · 2 评论 -
LeetCode题目#509(递归)——斐波那契数列
原题目及链接如下:https://leetcode-cn.com/problems/fibonacci-number/递归解:class Solution { public int fib(int n) { if (n == 0) { return 0; } else if (n == 1) { return 1; } else if (n == 2) { return 1原创 2022-03-24 02:11:18 · 345 阅读 · 0 评论 -
LeetCode题目#344(字符串类)——反转字符串
原题目及链接如下:https://leetcode-cn.com/problems/reverse-string/我的解法及思路如下:/*思路:首位对调,需要注意循环次数。*/class Solution { public void reverseString(char[] s) { int len = s.length; for (int left = 0, right = len - 1; left < right; left++, righ原创 2021-02-24 22:52:12 · 300 阅读 · 1 评论 -
LeetCode题目#217(哈希表)——存在重复元素
原题目及链接:https://leetcode-cn.com/problems/contains-duplicate/解法及思路如下:/*学习了官方的解法,利用Set不允许重复的特性,向Set中add元素,如果失败,则返回true,如果遍历完成,而一直未失败,返回false*/class Solution { public boolean containsDuplicate(int[] nums) { Set<Integer> set = new HashS原创 2021-01-28 23:45:20 · 428 阅读 · 2 评论 -
LeetCode题目#141(链表类)——快慢指针判断环形链表
原题目及链接如下:https://leetcode-cn.com/problems/linked-list-cycle/submissions/我的解法及思路如下:/**使用快慢指针 */public class Solution { public boolean hasCycle(ListNode head) { if(head == null || head.next==null) return false; ListNode fast = h原创 2021-01-27 09:52:21 · 253 阅读 · 0 评论 -
LeetCode题目#645(数组类)——错误的集合
原题目及链接如下:https://leetcode-cn.com/problems/set-mismatch/submissions/我的思路及解法如下:/*思路:暴力求解:使用1到n遍历数组(双层for循环),与数组内容比较,出现两次的就是重复的duplicate,没有出现的就是缺失missed的。返回result数组即可。*/public class Solution { public int[] findErrorNums(int[] nums) { in原创 2021-01-24 23:12:58 · 245 阅读 · 0 评论 -
LeetCode题目#58(字符串类)——Length of Last Word(最后一个单词的长度)
原题目及链接如下:https://leetcode-cn.com/problems/length-of-last-word/submissions/我的解法及思路如下:/*思路:1.将s trim()后存入StringBuffer sb,方便进行处理2.首先判断sb长度为0的情况,直接返回03.长度不为0的,则分为有一个词/多个词两种情况4.只有一个词,那就直接判断其中间有无空格,确定是不是只有一个词,没有空格且长度不为0,则return这个sb的长度5.有多个词:那就从最后一位开始,使原创 2021-01-23 23:59:28 · 280 阅读 · 1 评论 -
LeetCode题目#14(字符串类)——最长公共前缀
原题题目及链接如下:https://leetcode-cn.com/problems/longest-common-prefix/submissions/我的解法及思路如下:/*思路:纵向比对。1.首先判断字符串数组长度,如果为0,则直接返回""2.循环取得最短的字符串长度,作为后面的循环次数;创建一个StringBuffer用于拼接公共前缀3.双层循环,纵向比对每个字符串,使用count作为计数位,如果内循环完成一轮后,count=字符串数组的长度,则公共前缀+14.return 公共前原创 2021-01-21 10:32:22 · 274 阅读 · 3 评论 -
LeetCode题目#434(字符串类)——字符串中的单词数
原题题目与链接:https://leetcode-cn.com/problems/number-of-segments-in-a-string/我的解法及思路如下:/*思路:1、首先去除前后的空格2、如果处理后的字符串为空,则直接return一个03、如果不为空,则遍历字符串,若当前字符不是第一个字符且非空格,且当前字符前的字符为空格,则count++4、最后的值就是count+1(第一个字符未记在count中)——当然也可以直接让count初始化为1。*/class Solutio原创 2021-01-21 00:20:16 · 295 阅读 · 3 评论 -
LeetCode题目#125(字符串类)——验证回文串
原题目及链接:https://leetcode-cn.com/problems/valid-palindrome/submissions/我的解法及思路如下:/*思路:首先考虑特殊情况,空串直接返回true。回文串,首先要去掉其中的非字母元素(使用正则表达式),然后str.toLowerCase(),统一格式,转化为数组。最后使用两个指针,分别从头尾两端遍历数组,进行比较,如果直到前指针下标值≥后指针,一直都是true,则输出true;否则输出false。最大遍历次数为字符串长度的1/2。原创 2021-01-19 22:36:48 · 602 阅读 · 13 评论 -
LeetCode题目#520(字符串类)——检测大写字母
原题题目与链接:https://leetcode-cn.com/problems/detect-capital/submissions//*思路:其实就是判断格式是否符合给定的3种情况呗,如果符合则输出true,不符合则输出false。所以只要将word按对应格式转换,并与原来的word对比,相同即为true。最后利用or语句。编写三个子比较方法,然后依次调用,*/class Solution { public boolean detectCapitalUse(String word原创 2021-01-19 21:33:56 · 301 阅读 · 1 评论 -
LeetCode题目#628(数组类)——三个数的最大乘积
原题链接与题目:https://leetcode-cn.com/problems/maximum-product-of-three-numbers/我的解法:/*思路:需要考虑正负。首先进行正序排序,完成后,负数绝对值最大的在左,正数最大值在右。则最大的乘积可能为:1、绝对值最大的负数*绝对值第二大的负数*最大的正数2、序列的最后三个正数相乘所以只需要算出来这两个乘积,并return其中较大者即可。*/class Solution { public int maximumPr原创 2021-01-19 09:54:43 · 393 阅读 · 0 评论 -
LeetCode题目#414(数组类)——第三大的数
原题链接及题目如下:https://leetcode-cn.com/problems/third-maximum-number/submissions/我的解法如下(效率比较低):/*思路:遍历,并实现正序排序。取第三大的数,从最后一位开始向前数,此时最后一位就是最大的,n-3为第三大,考虑到存在数据重复的情况,定义一个整型变量temp,值等于最后一位(即最大的数),反向遍历数组,从最后一位向前比较,与比temp小的值依次交换,直到交换两次之后,temp就是第三大的数。*/class原创 2021-01-18 23:58:01 · 304 阅读 · 1 评论 -
LeetCode题目#495(数组类)——提莫攻击
原文链接及题目:https://leetcode-cn.com/problems/max-consecutive-ones/我的解法如下:/*思路:名词转换:攻击事件序列:相当于开始时间;中毒持续时间:持续时间。输入格式为:[第一次攻击起始时间,下一次攻击起始时间],每次攻击持续时间。需要考虑的点:上一次毒没结束,下一次就开始,那就会产生重叠。所以需要使用不考虑重叠影响情况下算出的数据,减去重叠部分的长度(即前后两个数据求差)也即,需要考虑前一个与后一个元素之间的距离,是否小于攻击持续时间原创 2021-01-18 22:31:09 · 319 阅读 · 0 评论 -
LeetCode题目#485(数组类)——最大连续1的个数
原题链接及题目:https://leetcode-cn.com/problems/max-consecutive-ones//*思路:遍历数组,设置一个max用于计算最大的值,设置一个count用于计算当前连续1的个数如果当前位为1,则count++,为0,则count置0。将count与max比较,如果比max大,则互换。最后输出max与count中较大的数即可。*/class Solution { public int findMaxConsecutiveOnes(int[]原创 2021-01-18 23:31:16 · 293 阅读 · 1 评论 -
Java算法编程基础(2)字符串处理汇总(追加,删除,插入,索引,反转)
可以使用Java的CharAt(i),如下(需要注意 i 的初始值为0):public static void main(String[] args) { StringBuffer s1 = new StringBuffer().append("bbb"); s1.append("aaa"); System.out.println(s1.toString()); //把s1整个输出来 System.out.println(s1.cha原创 2021-01-18 00:47:08 · 539 阅读 · 2 评论 -
Java算法编程基础(1)在线编程基础
数组初始化int a[] = new int [3]; //三要素:类型,数组名,元素个数数据取绝对值int a = Math.abs(a); //不需要额外引入任何包,直接用就可以取字符串长度int i = a.length(); //不要忘了后面有个括号取字符串中某位置的字符char a = str.charAt(i); //注意下标索引是从0开始与或&&,|| //千万不要写成 and or 啥的,编译不了输出保留两位小数float result =原创 2021-01-17 23:56:14 · 415 阅读 · 1 评论