从0开始的leetcode
文章平均质量分 54
kento_joyasa
欢
展开
-
7.整数反转
还有一种情况,我们如果判断是否超出int的范围,也可以通过在这个数字乘十加余数之前,用一个last存储,如果last不等于ans/ 10说明ans已经超出了int的范围,就可以直接return 0了。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。每次在末尾取模,然后让结果乘十再加上取模的数值。输入:x = -123。输入:x = 123。输入:x = 120。原创 2022-10-21 15:09:13 · 122 阅读 · 0 评论 -
6.字形变换
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。输入:s = "PAYPALISHIRING", numRows = 3。输入:s = "PAYPALISHIRING", numRows = 4。输入:s = "A", numRows = 1。输出:"PAHNAPLSIIGYIR"输出:"PINALSIGYAHRPI"原创 2022-10-21 14:30:49 · 87 阅读 · 0 评论 -
5.最长回文子串(马拉车怨种版)
a#b#b#a#的半径就是#a#b#长度为5, 里面一共有5 - 1个字符, 也就代表着,我们原来的字符串长度为4;思路就是马拉车这个算法,对我来说实现的难度主要是在如何用java写,java的string类用的还是不熟练欸。首先我们考虑这样一个问题,就是回文子串的长度分为两种, 一种是奇数,一种是偶数。我们的方法是,在收尾添加两个不同的字符,然后每个原有的字符前面后面都加一个#号。这样我们的字符串:比如说奇数的aba就变成了¥#a#b#b#a#^这样我们的回文字符串就变成了#a#b#b#a#是个奇数。原创 2022-10-21 08:48:02 · 556 阅读 · 1 评论 -
3:无重复字符的最长字串
思路就是,每次出现的数字,我们判断是否出现过,如果出现过,我们就让left每次向右移动一个,无论是否曾经出现过, 我们都要用put将该字符加入HashMap中,请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。原创 2022-10-18 20:15:34 · 48 阅读 · 0 评论 -
2:两数相加
这里我也是不会,参考的其他大佬的思路,就是我们每次储存的时候,把当前位数,存储到这个节点的next的val上,这样就可以提前判断,最后一个是不是还需要加1或者不加。给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]输入:l1 = [2,4,3], l2 = [5,6,4]输出:[8,9,9,9,0,0,0,1]我们最后返回的链表的头结点的下一位,原创 2022-10-18 19:38:50 · 53 阅读 · 0 评论 -
两数之和,梦开始的地方
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。每次只需要找到target - a[i]这个数是否存在,如果不存在就把, 存进去。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。原创 2022-10-18 19:32:53 · 50 阅读 · 0 评论