LeetCode随缘刷题之截断句子】的更多相关文章

这道题相对比较简单.正好最近学到StringBuilder就用了. package leetcode.day_12_06; /** * 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). * <p> * 例如,"Hello World"."HELLO" 和 "hello world hello world" 都是句子. * 给你一个句子 s 和一个整数 k,请…
这一题我用的相对比较笨的方法. 相对于大佬们用的动态规划法,比较复杂.但却更容易理解,我主要是通过记录下标来确定最长回文串的. package leetcode.day_12_06; /** * 给你一个字符串 s,找到 s 中最长的回文子串. * <p> * <p> * 示例 1: * <p> * 输入:s = "babad" * 输出:"bab" * 解释:"aba" 同样是符合题意的答案. * 示例 2:…
我一上来没读清题,想着这题这么简单,直接就上手写了: package leetcode.day_12_05; import java.util.ArrayList; import java.util.Comparator; import java.util.List; /** * 给定两个大小分别为 m 和 n 的正序(从小到大)数组nums1 和nums2.请你找出并返回这两个正序数组的 中位数 . * <p> * 算法的时间复杂度应该为 O(log (m+n)) . * 示例 1: * &…
今天给大家分享一个Java经典的面试题,题目是这样的: 本题是LeetCode题库中的49题. 将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成 举个例子:输入["eat","tea","tan","ate","nat","bat"] 输出[["ate","eat","tea"],["nat",…
package leetcode.day_01_29; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数). * <p> * 函数myAtoi(string s) 的算法如下: * <p> * 读入字符串并丢弃无用的前导空格 * 检查下一个字符(假设还未到字…
这道题应该是最简单的一道题了把,简直在侮辱我. package leetcode.day_12_12; /** * 709. 转换成小写字母 * 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串. * <p> * 示例 1: * <p> * 输入:s = "Hello" * 输出:"hello" * 示例 2: * <p> * 输入:s = "here" * 输出:"h…
package leetcode.day_12_10; import org.junit.Test; /** * 给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出并返回 words 中的 最短补全词 . * <p> * 补全词 是一个包含 licensePlate 中所有的字母的单词.在所有补全词中,最短的那个就是 最短补全词 . * <p> * 在匹配 licensePlate 中的字母时: * <p> * 忽略licensePlat…
欢迎评论区交流. package leetcode.day_12_04; /** * 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度. * <p> * 示例1: * <p> * 输入: s = "abcabcbb" * 输出: 3 * 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. * 示例 2: * <p> * 输入: s = "bbbbb" * 输出: 1 * 解释:…
欢迎评论区讨论. package leetcode.day_12_04; /** * 为了不在赎金信中暴露字迹,从杂志上搜索各个需要的字母,组成单词来表达意思. * * 给你一个赎金信 (ransomNote) 字符串和一个杂志(magazine)字符串,判断 ransomNote 能不能由 magazines 里面的字符构成. * * 如果可以构成,返回 true :否则返回 false . * * magazine 中的每个字符只能在 ransomNote 中使用一次. * * 示例 1:…
逐步解释,有说错的地方欢迎指正. package leetcode.day_12_03; /** * 给你两个非空 的链表,表示两个非负的整数.它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字. * <p> * 请你将两个数相加,并以相同形式返回一个表示和的链表. * <p> * 你可以假设除了数字 0 之外,这两个数都不会以 0开头. * <p> * 示例 1: * <p> * 输入:l1 = [2,4,3], l2 = [5,6,4]…
package leetcode.day_01_30; /** * 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) .在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) .找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水. * * 说明:你不能倾斜容器. * * 示例 1: * * 输入:[1,8,6,2,5,4,8,3,7] * 输出:49 * 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7…
package leetcode.day_01_30; /** * 给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . * <p> * 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.例如,121 是回文,而 123 不是. * <p> * <p> * 示例 1: * <p> * 输入:x = 121 * 输出:true * 示例2: * <p> * 输入:x = -121 * 输出:fals…
package leetcode.day_01_29; /** * 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果. * 如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0. * 假设环境不允许存储 64 位整数(有符号或无符号). * <p> * 示例 1: * 输入:x = 123 * 输出:321 * <p> * 示例 2: * 输入:x = -123 * 输出:-321 * <p> * 示例 3:…
在工程效率大行其道的今天,如果不会写点代码以后也不容易在测试圈混下去.今天给大家推荐一个LeetCode的刷题利器,可以伪装到连你老板在这里走过去都无法确认你是在干活呢,还是在干活呢. LeetCode是什么 leetcode是个题库,里面有很编程多面试的题目,可以在线编译运行.难度比较高.如果自己能都做出来,对面大公司很有帮助. 网址:https://leetcode.com/(如果对英文页面不爽的可以访问对应的中文页面:https://leetcode-cn.com/) 如果想在上面训练,首…
Dynamic Programming 实际上是[LeetCode] 系统刷题4_Binary Tree & Divide and Conquer的基础上,加上记忆化的过程.就是说,如果这个题目实际上是类似于Divide and conquer或者说是DFS,但是在计算过程中有很多重复计算同样的过程的话,那么就可以用Dynamic prgramming/记忆化搜索来完成.基本就是利用空间来简化时间复杂度的过程. 可以/很有可能使用Dynamic programming的条件,满足之一即可. 1.…
一.起因 宅在家中,不知该做点什么.没有很好的想法,自己一直想提升技能,语言基础自不必言,数据结构还算熟悉,算法能力一般.于是乎,就去刷一通题. 刷题平台有很多,我选择了在leetcode进行刷题.回头看第一篇文章,还算有一些收获的. 传送门: 从心出发-刷leetcode写给5年后的自己,原计划用3个月的时间,回头来看第1轮100题用了刚好30天. 二.刷题方法及做法 自2020年1月22日开始,到2020年2月21日至,刷了top-100-liked-questions中的100道题目.普遍…
LeetCode 高效刷题路径 Hot 100 https://leetcode.com/problemset/hot-100/ https://leetcode-cn.com/problemset/hot-100/ ACM 蓝桥杯 refs https://www.zhihu.com/question/36738189 https://www.educative.io/explore/free xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可…
今天开始刷Leetcode上面的算法题.我会更新我刷题过程中提交的代码(成功和不成功的都有)和比较好的解法 第二题 Add Two Numbers 题目的意思:输入两个链表,这两个链表都是倒序的数字,相加后返回倒序的链表.比如: Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 (342 + 465 = 807) 我的解法: 思路很简单,把两个链表分别转换成数字,相加后把结果再转换成链表 # Definit…
刷题成习惯以后感觉挺好的 Num 27 移除元素 Remove Element 跟那个排序去掉相同的一样,len标记然后新的不重复的直接放到len class Solution { public: int removeElement(vector<int>& nums, int val) { ; ;i<nums.capacity();i++) { if(nums[i]!=val) { nums[len++]=nums[i]; } } return len; } }; Num 35…
收到swe提前批面试hhh算是ep挂了的后续 努力刷题呀争取今年冲进去! Num 21 合并两个有序链表 Merge Two Sorted Lists 注意新开的链表用来输出结果的是ListNode *l3=new ListNode(0)这样的写法 还有就是,注意一下可能会返回到NULL,有必要重新写一下 因为是链表,最后就直接补上去就ok了,一个一个加有可能触发NULL /** * Definition for singly-linked list. * struct ListNode { *…
orzorz开始刷题 争取坚持每周平均下来简单题一天能做两道题吧 非常简单的题奇奇怪怪的错误orz越不做越菜 Num 7 整数反转 Reverse Integer 刚开始多给了一个变量来回折腾占地方,没注意到溢出 因为有溢出,在返回的时候(int) ans 开始设置的时候设置long ans,不然遇到溢出直接报错了. class Solution { public: int reverse(int x) { ; ) { ans=ans*+x%; x=x/; } || ans> ) ; retur…
Valid Palindrome吐槽一下Leetcode上各种不定义标准的输入输出(只是面试时起码能够问一下输入输出格式...),此篇文章不是详细的题解,是自己刷LeetCode的一个笔记吧,尽管没有代码,可是略微难一点的都会标出主要思路,便于以后复习 PS:题目中有"水题"两字的都是一遍AC,没有标注的都说明了问题,顺序依照Leetcode上时间倒序排列,少量题目因为和之前的题目有相关性,因此将其放在一起,比方12题和13题,因此中间可能会"缺少"几道题目,缺少的…
Array 448.找出数组中所有消失的数 要求:整型数组取值为 1 ≤ a[i] ≤ n,n是数组大小,一些元素重复出现,找出[1,n]中没出现的数,实现时时间复杂度为O(n),并不占额外空间 思路1:(discuss)用数组下标标记未出现的数,如出现4就把a[3]的数变成负数,当查找时判断a的正负就能获取下标 tips:注意数组溢出 public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> d…
今天的题目不是leetcode上面的.只是觉得动态规划还是不算很熟练,就接着找了点DP的题练练 最长递增子序列的长度 题目的意思:传入一个数组,要求出它的最长递增子序列的长度.例如:如在序列1,-1,2,-3,4,-5,6,-7中,最长递增序列为1,2,4,6,所以长度为4. 分析:这道题我们可以用动态规划来做.对于数组的前i个元素,记L(i)为前i个最长递增子序列的长度.我们可以得到状态转移方程:L(i) = max(L(j))+1, 其中j<i, a[j]<a[i]. 这个解法比较容易想出…
又到了晚上,动态规划,开刷! 第121题 Best Time to Buy and Sell Stock 题目的意思:给予一个数组price,表示特定股票在某天的股价,里面第i个数表示第i天的价格.只能交易一次(买一次+卖一次),求最大利润 分析:典型的动态规划.当我们要求到第i天为止最大的利润,就需要知道i-1天为止的最大利润,然后用第i天的股价减去(i-1)天股票最低值,然后比较即可.所以我们可以推出状态转移方程: maxProfit(i) = max(maxProfit(i-1), pri…
今天在刷了几道简单的动态规划后,又看了看string方面的题 第五题 Longest Palindromic Substring 题目的意思:求一个字符串的最长回文子串 分析:开始,我的想法是,现在字符串中插入特殊字符,比如'$',这样可以规避回 文串长度为奇数或偶数的讨论问题,加入特殊字符后,长度始终为奇数.然后建立一个数组,该数组记录了以每一位为中心的回文字符串的长度.解法很简单: def findmin(s): s_ = '~' + '~'.join(s) + '~' st = '' p…
上次刷了五六道题,都是关于string处理的,这次想换个知识点刷一下,然后再回头刷string的题,当做复习.. 这几天主要会选择动态规划的题目,因为以前从没刷过这方面的东西,很多东西都不是很懂..就当重新学习吧~ 第198题 House Robber 题目的意思:一个抢劫者要抢劫一条街上的住户,由于每家都有报警器,连续抢劫2家就会触发报警器.现在给你一个列表,里面的元素是每家可抢劫的金额,要求在不触发报警器的情况下抢劫最多的钱 分析:这是一道典型的动态规划题,我们先分析一下. 对于每一家,抢劫…
感觉自身编程水平还是差很多,所以刷刷题 LeetCode貌似是一个用的人比较多的题库,下面是第一题 给数组和目标和求需要元素的下标 public class Solution { public int[] TwoSum(int[] nums, int target) { ]{,}; ; i < nums.Length; i++) { ;j<nums.Length;j++) { if (i!=j) { if (nums[i] + nums[j] == target) { results[] =…
代码风格 说自己不清楚的算法,比如KMP,如果解释不清楚或者写不出来的算法建议不提 注意代码的缩进以及空格的合理运用,使得代码看起来比较整洁有条理 注意边界的条件以及越界 误区: 算法想出来还仅仅不够 算法写出来也还不够 试着从面试官的角度来思考: 面试官需要多少时间review你的代码 你的coding习惯好吗 你的沟通能力怎么样 coding风格(缩进,括号,变量名) coding习惯(异常检查,边界处理) 沟通 测试(主动写出合理的test case)很重要 问自己: 你做题之前, 先在白…
从题目名字就可以看出这两道题是相似的,219是217的加强版 217:Contains Duplicate 题目 给予一个数组,判断是否有重复的元素.如果有就返回True,没有就返回False.以下是我第一次想到的方法 解题思路 遍历这个数组,建立一个字典,存储每个不同的数字的出现次数.如果某个元素的出现次数大于1,则表示有重复 class Solution: # @param {integer[]} nums # @return {boolean} def containsDuplicate(…