随笔分类 -  刷题

摘要:题目: 该字符串"PAYPALISHIRING"以一个Z字形模式写在给定行数上,如下所示:(您可能希望以固定字体显示此模式以获得更好的可读性),输入是string和纵向长度,即行数。 输出就是PAHNAPLSIIGYIR 我的方法: 想法1:建立一个char类型的二维数组,char[i][j],i表 阅读全文
posted @ 2018-01-17 21:50 K_artorias 阅读(274) 评论(0) 推荐(0) 编辑
摘要:描述 不能使用乘法、除法和取模(mod)等运算,除开两个数得到结果,如果内存溢出则返回Integer类型的最大值。解释一下就是:输入两个数,第一个数是被除数dividend,第二个是除数divisor,要求是在不得使用乘法、除法和取模(mod)等运算的前提下,求出两个数的相除结果。 思路 有一个最简 阅读全文
posted @ 2017-12-07 21:12 K_artorias 阅读(390) 评论(0) 推荐(0) 编辑
摘要:描述 首先看链表结构: 本题目要求把传入两个链表,根据每个元素的val大小,按顺序把两个链表重新组装起来,组装为一个链表。 比如1-3-5-7和2-4-6-8两个链表,组装起来就是1-2-3-4-5-6-7-8 答案描述 先看看我的答案,巨长无比还不好理解,想法是这样的:就是根据两个链表遍历比大小, 阅读全文
posted @ 2017-11-30 20:40 K_artorias 阅读(446) 评论(0) 推荐(0) 编辑
摘要:描述 给定一个链表,从列表的最后删除倒数第n个元素 例如: 链表定义: 我的方法 leetcode讨论区的方法 阅读全文
posted @ 2017-11-30 12:05 K_artorias 阅读(549) 评论(0) 推荐(0) 编辑
摘要:描述 给定一个n个整数的数组S,在S中找到三个整数,使得总和最接近给定数量的目标。返回三个整数的和。你可以假设每个输入都只有一个解决方案。 解决方案 和上次做的三个数和为0那个题很像,所以首先要想到的当然就是给这个无序数组排序,这样能降低之后的匹配过程的复杂度。 我又一次本着先做对后看事件复杂度的态 阅读全文
posted @ 2017-11-28 19:59 K_artorias 阅读(183) 评论(0) 推荐(0) 编辑
摘要:描述: 给定一个整形无序数组a,其中元素可重复,在a中找出所有的{a, b, c}满足条件a+b+c=0,且结果不可以重复 思考过程: 在解决这个题时,我一直考虑怎么才能避免重复,因为这是个无序数组,我最先想到的是匹配已有结果,但是这样会超级复杂,解决方法一定不是这样的。那么既然无序的不好办,把它变 阅读全文
posted @ 2017-11-28 12:07 K_artorias 阅读(181) 评论(0) 推荐(0) 编辑
摘要:题目 给定n个非负整数a 1,a 2,...,a n,其中每个代表坐标(i,a i)处的一个点。绘制n条垂直线,使得线i的两个端点处于(i,a i)和(i,0)处。找到两条线,它们与x轴一起形成一个容器,使得容器包含最多的水。 注意:你可能不倾斜容器,n至少为2。 实现: 先看我的实现代码: 为了找 阅读全文
posted @ 2017-11-23 20:25 K_artorias 阅读(236) 评论(0) 推荐(0) 编辑
摘要://我的方法 public String longestCommonPrefix(String[] strs) { //如果字符串数组长度是0,则返回“”,如果数组长度是1,那么直接返回这一条String if(strs.length==0){ return ""; }else if(strs.length==1){ ... 阅读全文
posted @ 2017-11-22 18:17 K_artorias 阅读(4846) 评论(0) 推荐(0) 编辑
摘要:题意: 判断一个整数是否为回文数: 1、负数不是回文数 2、个位数一定是回文数 3、12321、6666、11等类似这样的数是回文数 下面是我写的代码: 思路: 1 首先判断是否是正数 2 判断是否是个位数 3 根据算数特性,逐个提出对应位比较是否相等,一旦有不想等马上返回false,如果执行完成还 阅读全文
posted @ 2017-11-06 23:35 K_artorias 阅读(593) 评论(0) 推荐(0) 编辑
摘要:一 java实现atoi() * atoi()描述: * 参数str字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换, 之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。下面是leetcode社区Discuss版面的两个解决方案: 方案1: 方案2: 阅读全文
posted @ 2017-11-01 22:15 K_artorias 阅读(331) 评论(0) 推荐(0) 编辑
摘要:题意: * 给定一个pattern和一个字符串str,找到如果str遵循相同的模式。 * pattern = "abba",str = "dog cat cat dog"应该返回true。 * pattern = "abba",str = "dog cat cat fish"应该返回false。 l 阅读全文
posted @ 2017-10-27 09:41 K_artorias 阅读(639) 评论(0) 推荐(0) 编辑
摘要:题意: 给定一个字符串s,在s中找到最长的回文子字符串。您可以假设s的最大长度为1000。 例子: 输入: “babad” 输出: “bab” 注: “aba”也是一个有效的答案。 我的答案: 想法:既然是回文字符串,就表示字符串正序倒序是一样的,先假设有一个turnString,把字符串翻转;整体 阅读全文
posted @ 2017-10-22 12:53 K_artorias 阅读(340) 评论(0) 推荐(0) 编辑
摘要:题目要求: 有两个排序的数组nums1和nums2分别为m和n大小。 找到两个排序数组的中位数。整体运行时间复杂度应为O(log(m + n))。 示例: 我的方法: 分别逐个读取两个数组的数,放到一个新的数组里,由于两个数组本身是已经排序好的,所以只需要在放在新数组时候注意对比,放入完成后,就是一 阅读全文
posted @ 2017-10-19 23:13 K_artorias 阅读(426) 评论(2) 推荐(0) 编辑
摘要:描述: 给定一个字符串,找到最长子串的长度,而不重复字符。 例子: 给定"abcabcbb"的答案是"abc",长度是3。 给定"bbbbb"的答案是"b",长度为1。 给定"pwwkew"的答案是"wke",长度为3.请注意,答案必须是子字符串,"pwke"是子序列,而不是子字符串。 我的方法:( 阅读全文
posted @ 2017-10-14 08:41 K_artorias 阅读(16276) 评论(0) 推荐(1) 编辑
摘要:描述: 给定两个非空的链表,表示两个非负整数。数字以相反的顺序存储,每个节点包含一个数字。添加两个数字并将其作为链表返回。 您可以假设两个数字不包含任何前导零,除了数字0本身。 输入:(2 - > 4 - > 3)+(5 - > 6 - > 4)输出: 7 - > 0 - > 8 类似于:342+5 阅读全文
posted @ 2017-10-12 09:16 K_artorias 阅读(473) 评论(1) 推荐(0) 编辑
摘要:给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。 您可以假设每个输入都只有一个解决方案,而您可能不会使用相同的元素两次。 例子: 我的解决方法: LeetCode解决方法: 方法一:暴力相加 方法二:双程哈希表 方法三:单程哈希表 阅读全文
posted @ 2017-10-12 09:13 K_artorias 阅读(224) 评论(0) 推荐(0) 编辑
摘要:堆栈的模式是先进后出,取出后堆栈中就没有取出的元素了,所以在模拟时候要注意这些问题。 输出语句:System.out.println(list.size() + "|" + list.pop());分别输出当前堆栈的大小和堆栈顶端内容,那么输出结果如下: 因为每一次pop,并不是读内容,而是把内容取 阅读全文
posted @ 2017-08-12 21:02 K_artorias 阅读(437) 评论(0) 推荐(0) 编辑