自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(221)
  • 收藏
  • 关注

原创 113 - 删除排序链表中的重复数字 II

2017.11.1果然一遇到链表就剪不清理还乱。一会儿就彻底懵了。大致思路就是先判断有没有重复的,如果有重复的,就全部删除如果没有重复的,就下一个。呵呵,道理我都懂啊,我就是写不出来代码啊/** * Definition for ListNode * public class ListNode { * int val; * ListNode next

2017-11-01 10:18:44 398

原创 612 - K个最近的点

2017.10.30就是先算出每个点到目标点的距离,然后按距离排序。当距离相等的时候,按照x,y的值进行排序。最后,输出前k个就可以了。/** * Definition for a point. * class Point { * int x; * int y; * Point() { x = 0; y = 0; } * Point(in

2017-10-30 15:36:58 499

原创 681 - 缺失的第一个素数

2017.10.30缺失的素数出现的地方,有三种情况1.开头2.中间3.结尾对这三种情况分别进行处理就可以了public class Solution { /* * @param : an array of integer * @return: the first missing prime number */ public int

2017-10-30 10:25:39 688

原创 677 - 大岛的数量

2017.10.30采用深度遍历的方法,找到相连的岛屿并计数,如果最后的计数量大于给定的k,那么res + 1;public class Solution { /* * @param : a 2d boolean array * @param : an integer * @return: the number of Islands */

2017-10-30 09:08:16 519

原创 704 - 点灯切换

2017.10.28set中存放的是,所有的开关情况的组合res中存放的是,根据开关情况,计算出来的灯泡的亮灭的情况的组合。值得注意的是,当m和n过大的时候,只需要关注 n%6个灯 在 m%16次操作之后的情况就可以了。public class Solution { /* * @param : number of lights * @param

2017-10-28 09:50:53 385

原创 419 - 罗马数字转整数

2017.10.27public class Solution { /* * @param s: Roman representation * @return: an integer */ public int romanToInt(String s){ HashMap map = new HashMap<>(); map.put('I', 1)

2017-10-27 15:46:46 387

原创 518 - 超级丑数

2017.10.27被整数越界的问题困扰了好久,以后一定要记得这种很大的数相乘会出现越界的情况。public class Solution { /** * @param n a positive integer * @param primes the given prime list * @return the nth super ugly numbe

2017-10-27 15:06:51 337

原创 688 - 单词表示数字

2017.10.26三位三位的读,然后再加thousand million billion等单位。再读每一个三位的时候,后两位需要特殊处理。此外就是空格的增加需要格外注意一些,这主要是针对几个相连的0出现的情况。public class Solution { /* * @param : the number * @return: the number i

2017-10-26 17:50:28 1320

原创 698 - 数组中最大的差值

2017.10.24刚开始没有看清楚a,b需要是不同数组中的内容。这样就需要保存最大值,最小值,次大值,次小值,以及他们出现在数组中的位置。来判断是不是出自同一个数组。public class Solution { /* * @param : an array of arrays * @return: return the max distance amon

2017-10-24 18:11:48 339

原创 700 - 杆子分割

2017.10.24状态转移方程为: value[i] = Math.max(value[i], value[j] + value[i-j]);public class Solution { /* * @param : the prices * @param : the length of rod * @return: the max value

2017-10-24 17:46:51 634

原创 719 - 计算最大值

2017.10.24当遍历到s的第i个字符时 d[i] = max(i*d[i-1], i+ d[i-1])public class Solution { /* * @param : the given string * @return: the maximum value */ public int calcMaxValue(String str

2017-10-24 17:29:18 402

原创 718 - 重复字串

2017.10.24重复字符串A,当A的长度大于B的长度的2倍的时候,停止。在此期间,一直检查B是不是A的子串,如果是,就提前停止。返回重复次数。这个时候,如果B仍旧不是A的子串,那么就返回-1;public class Solution { /* * @param : string A to be repeated * @param : strin

2017-10-24 15:36:43 318

原创 706 - 二进制时间

2017.10.24    /**小时数中,最多可以包含3个1;小时数最多为4位,         * 分钟数中,最多可以包含5个1;分钟数最多有6位;         * 所以num的数量不可以大于8         */建立map,分别计算1~60的二进制表示中,有几个1;然后根据num对小时和分钟中1的含量进行划分, 最后再组合就可以public class So

2017-10-24 15:09:16 675

原创 702 - 连接两个字符串中的不同字符

2017.10.24还是想用string.replaceAll,但是关于正则表达式,确实没有办法很好的处理。真是上火啊。后来用list这种笨笨的方法。public class Solution { /* * @param : the 1st string * @param : the 2nd string * @return: uncommon c

2017-10-24 10:13:03 1113

原创 697 - 判断是否为平方数之和

2017.10.24只查找一半就可以,如果全部查找的话,会超时。public class Solution { /* * @param : the given number * @return: whether whether there're two integers */ public boolean checkSumOfSquareNu

2017-10-24 09:39:27 2473

原创 108 - 分割回文串 II

2017.10.24理论上应该是很简单的   d[i][j] = min(d[i][k]+d[k+1][j]+1,d[i][j],但是如果单纯使用递归的话,显然会超时的。后来采用数组记录d[i][j]的值,基本通过97%,但仍旧会超时。在后来改变判断回文的办法,同样采用数组进行保存,这样就过了。public class Solution { /** * @para

2017-10-24 08:54:41 340

原创 99 - 重排链表

2017.10.23首先遍历链表,建立两个队列,一个存放前一半一个存放后一半。然后再遍历这两个队列,建立新的连接关系,重排链表。/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { *

2017-10-23 15:25:28 351

原创 427 - 生成括号

2017.10.20f(n)的值就是在f(n-1)的基础上,遇到左括号就加一个(),然后再在开头加一个()public class Solution { /* * @param n: n pairs * @return: All combinations of well-formed parentheses */ public List gener

2017-10-20 15:33:28 406

原创 371 - 用递归打印数字

2017.10.20N层递归,其实也就是每一次递归都可以出来N-1的结果。public class Solution { /* * @param n: An integer * @return: An array storing 1 to the largest number with n digits */ public ArrayList num

2017-10-20 11:11:37 323

原创 411 - 格雷编码

2017.10.20格雷编码,最主要的就是要了解编码产生的过程。这段是抄别人的,哈哈哈:如n=2时,格雷码为00,01,11,10.如需生成n=3的格雷码只需先将原序列高位加0变成000,001,011,010,再将原序列在高位加1并逆向添加到刚才生成的序列尾部,即000,001,011,010,110,111,101,100。也就是说,n+1位元格雷码是基于n位元格雷码产生的。pub

2017-10-20 09:33:27 372

原创 137 - 克隆图

2017.10.19这个好像采用递归的方法不太行得通。相当于广度遍历图,一个一个的新建节点,并且建立相应的联系。还是注意要设置visit,这样可以避免在出现环的情况下,程序陷入死循环。/** * Definition for undirected graph. * class UndirectedGraphNode { * int label; * Arra

2017-10-19 17:57:35 305

原创 178 - 图是否是树

2017.10.19首先要明白什么样子的图是数:没有环的连通图就是树。或者是图连通,且边数为n-1; public boolean validTree(int n, int[][] edges) { // write your code here HashMap> map = new HashMap<>(); for(int i = 0 ; i < n ;

2017-10-19 10:16:37 269

原创 176 - 图中两个点之间的路线

2017.9.37就是从一个点开始遍历,如果找到了另外一个点,就表示存在着路。需要注意的就是,要设置visit,不然如果出现环的话,就会陷入死循环。/** * Definition for Directed graph. * class DirectedGraphNode { * int label; * ArrayList neighbors; *

2017-10-19 09:37:16 449

原创 104-合并k个排序链表

2017.10.16.终于有时间继续刷刷题了。果然一做链表的题逻辑很清楚,就是这个写起来就很乱。k个链表就是两两的合并就好了。/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { *

2017-10-16 11:02:15 234

原创 95 - 验证二叉查找树

2017.9.29刚开始想采用递归的方法,先判断根和左节点右节点的关系,在判断左子树和右子树是不是查找树。然而这种想法逻辑上其实是错误的。 比如             10          /         \        2           15    /      \        /     \1         11    9      17这颗

2017-09-29 17:37:43 315

原创 90 - k数和 II

2017.9.29还是使用的递归的方式public class Solution { /* * @param A: an integer array * @param k: a postive integer <= length(A) * @param targer: an integer * @return: A list of lists

2017-09-29 17:11:14 420

原创 680 - Split String

2017.9.29如果单纯的使用递归的方式的话,会超出内存的限制。 F(S ) =  F(s-1) + F(s-2)采用显式的递归就过了public class Solution { /* * @param : a string to be split * @return: all possible split string array */

2017-09-29 16:24:07 443

原创 685 - First Unique Number In Stream

2017.9.29这个题目是要求输出第一个非唯一的元素。如果直接用HashMap的话会失去顺序,所以需要使用LinkedHashMap。public class Solution { /* * @param : a continuous stream of numbers * @param : a number * @return: returns t

2017-09-29 15:56:25 301

原创 684 - Missing String

2017.9.29快放假了,做个简单的吧public class Solution { /* * @param : a given string * @param : another given string * @return: An array of missing string */ public static List missi

2017-09-29 15:40:55 1147

原创 671 - 循环单词

2017.9.28首先判断两个字符串的长度是不是相同。然后判断,字符串A两个进行拼接后,是不是包含着字符串B,就表示是不是循环单词了public class Solution { /* * @param words: A list of words * @return: Return how many different rotate words */

2017-09-28 16:02:58 477

原创 204 - 单例

2017.9.28用几种不同的方法实现了单例class Solution { /** * @return: The same instance of this class every time */ /************** 1 ****************** private static Solution instanc

2017-09-28 15:27:40 273

原创 211 - 字符串置换

2017.9.28这个String.replace 是正则替换的,看来是不能用了public class Solution { /* * @param A: a string * @param B: a string * @return: a boolean */ public static boolean Permutation(Stri

2017-09-28 15:12:42 375

原创 376 - 二叉树的路径和

2017.9.28先用递归的办法找到所有的根节点到叶子节点的路径。再一一计算和。/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { *

2017-09-28 10:26:23 340

原创 84 - 落单的数 III

2017.9.26不知道。。。有什么区别。。。public class Solution { /* * @param A: An integer array * @return: An integer array */ public List singleNumberIII(int[] A) { // write your c

2017-09-26 15:47:22 336

原创 83 - 落单的数 II

2017.9.26就是一个统计的过程吧。用HashMap轻松解决吧。public class Solution { /* * @param A: An integer array * @return: An integer */ public static int singleNumberII(int[] A) { // writ

2017-09-26 15:43:12 388

原创 79 - 最长公共子串

2017.9.26依次选取A中的子串,检查B中是不是包含就可以了public class Solution { /* * @param A: A string * @param B: A string * @return: the length of the longest common substring. */ public s

2017-09-26 15:28:21 364

原创 78 - 最长公共前缀

2017.9.26就是慢慢比较呗public class Solution { /* * @param strs: A list of strings * @return: The longest common prefix */ public String longestCommonPrefix(String[] strs) {

2017-09-26 15:09:00 304

原创 76 - 最长上升子序列

2017.9.26建立一个一维数组 arr[],表示当遍历到这个数时,当前的最长上升子序列。public class Solution { /* * @param nums: An integer array * @return: The length of LIS (longest increasing subsequence) */ public

2017-09-26 10:30:46 328

原创 75 - 寻找峰值

201.9.26这也是很鸡贼的一道题啊,开始对lintcode没有好感了。这题我只知道顺序遍历啊。可是顺序遍历会超时啊。然后从网上搜索了他人的答案,说要用二分查找,但是二分查找只有在有序的时候才可以使用啊。更加神奇的是,我用二分查找居然通过了。我就呵呵了。然后我自己写了一个测试用例【11,10,9,8,10,7】根本无法通过啊,也不知道在搞什么。恕我直言,真是垃圾。下边的代

2017-09-26 09:03:40 339

原创 74 - 第一个错误的代码版本

2017.9.26对二分查找的认知达到的新的高度,简直不明白为什么还会有这种操作。求取中间数的时候,如果我用  mid = (low + height)/2 就会超时;但是我如果用 mid  = low + (height - low)/2 就会AC。真的是很鸡贼啊。/** * public class SVNRepo { * public static boolean i

2017-09-26 09:01:23 391

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除