随笔分类 - leetcode
摘要:二进制的加法 经过测试之后,发现没有考虑整型数据溢出。 leetcode经常会有一些意想不到的例外。我以为是一道解法很丰富的题,选择了:把string转为int,用int的加法,再转为string返回。因为我讨厌用字符串来进位。但是溢出了。可以改进一下,用BigInteger这个类。 先贴上我的错误
阅读全文
摘要:坑主要在处理空格。因为字符串之间不止有一个空格。
阅读全文
摘要:最大和子序列。 在这之前,我这类题目都不是很懂。 今天突然想通了。 最大的问题是如何舍弃不符合的数据。 在if判断中,就能果断丢掉前面的一大串。
阅读全文
摘要:写easy,心情也很顺畅。 题目的意思是,如果有val,那么返回val的下标。如果没有val,那么找出val应该放在哪里。
阅读全文
摘要:我以为,当时我用c++写这个函数的时候,整个人如同乱麻。 这次用java写。先查的SE 8中String的方法。找到两个与此函数有关的方法:matches()和substring()。 测试的时候注意特殊情况 “a”与"" "aaa"与"a"
阅读全文
摘要:和上一道题思路差不多。
阅读全文
摘要:我决定先刷easy。 这道题的诡异之处在于,不仅你得输出长度,你还得更改nums[]数组,把冗余的数清掉。比如 还算比较简单的一道题。
阅读全文
摘要:题目如图 首先明确的是,可以有(()) ([])诸如此类的表达的。 然后用栈实现算法是,较为容易的。 判断总长度,不是2的倍数,返回false。 如果第一个是)]},返回false。 如果是( [ {则压入栈中 如果是)则看栈顶是不是(,如果不是,那么返回false。其他,类似。 执行完循环,如果栈
阅读全文
摘要:题: 遍历比较。 一本正经地说一下思路。 最长前缀。 一旦找到一个不匹配,就无法做成最长前缀。 所有我们的目的就是去找这个不匹配。 注意一下字符串为空的情况,每次都会栽在这里。 为了提高效率,找出最短字符串,因为最长前缀的长度不可能超过最短字符串的长度。 哎,心累。没有用例。
阅读全文
摘要:题目描述: Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two
阅读全文
摘要:题: 把x翻转后,判断是否与x相等。需考虑溢出。但是如果此数翻转后溢出,那么说明其不是回文数。 推理入下,如果翻转后的数溢出且是回文数,那么原数也溢出。矛盾。 以及复数不是回文数。
阅读全文
摘要:仍然应该把问题的重点放在溢出处理上。 我一开始特别蠢。 觉得不断取余十很麻烦。所以选择逆序字符串。把目标数当成字符串处理。 没有考虑到溢出的问题。 转变思路。逆序后整数溢出的条件是:乘以十后如果溢出,那么这个数就发生了变化,此时与原数比较,不同则代表溢出,直接返回零。
阅读全文
摘要:这个题目很简单。 需要注意的是,边界处理。和数据测试时考虑到特殊情况。 开头加了两行代码处理特殊情况。 1 /** 2 * zigzag 3 * 2017-5-8 4 **/ 5 6 import java.io.*; 7 import java.util.*; 8 import java.lang
阅读全文
摘要:最长回文字串 上题: 测试用例中,注意aaabaaaa。 但是我time limit exceeded。用了极暴力的方法解。(三层循环)找每一个字符的最长回文字串。 1 /** 2 * 最长回文子串 3 * 2017-5-7 4 **/ 5 6 import java.io.*; 7 import
阅读全文
摘要:上题: 最简单粗暴的方法: 1 public class Solution { 2 public int lengthOfLongestSubstring(String s) { 3 String s1=new String(); 4 char[] c=s.toCharArray(); 5 int
阅读全文
摘要:刷题背景 担心找不到工作。 看think in java略枯燥,传智播客的视频太浅显。 于是刷题练习算法和java。 废话少说。 题: java菜鸟一枚,用自己的编译器便于检查语法错误。 所以首先写了一个main函数,用于测试。 1 public static void main(String[]
阅读全文

浙公网安备 33010602011771号