- 博客(20)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 杂记一篇,写给16年
最忙碌的时间过去了,回想起来,确实是够折腾。 3,4月份整理第一篇论文,接着又做了另一篇文章,大约一直到7月份都在忙那篇文章,情况并不顺利,索性还是把那块难啃的骨头解决了,但其中发生的事情却另人不怎么愉快。怎么说呢,每个人都有自己的利益诉求,你那么说也无可厚非,但是你却能威胁我们去达到自己的目的,确实是够下贱的。 8月份,回家休息了半个月时间吧,其中有10天都在湖南省旅游,去了凤凰古城、张家界玻
2016-12-31 15:25:39 852 2
原创 LeetCode121:Best Time to Buy and Sell Stock I and II
public class Solution { public int maxProfit(int[] prices) { if(prices==null || prices.length==1){ return 0; } int ans = Integer.MAX_VALUE; for(int i=0;
2016-12-31 14:09:34 356
原创 Java基础之字符串创建于存储的机制
在java中字符串的声明与初始化有如下几种方式: 1. String a = new String("abc"); 2. String b = "abc" 这两种方式结果都是一样的,但是实现机制却不相同,接着往下看:String a = "hello";String b = "hello";与String c = new String("hello");String d = new Str
2016-12-24 14:07:04 808
原创 LeetCode473: Matchsticks to Square
public class Solution { //sums是当前每个边的大小 index是在数组中的位置 average是每个边的长度 public boolean robot(int[] nums, int [] sums , int index, int average){ //边界条件 if(nums.length3 || index>num
2016-12-24 10:17:58 1157 3
原创 LeetCode376:Wiggle Subsequence
这道题的意思是寻找一个子序列,这个序列需要满足一定的条件: 1. 不能连续递增或者递减 2. 只能间隔递增或者递减 3. 两数之间的差值必须不为0对于满足要求的序列[1,7,4,9,2,5],我们可以做一个图: 我们发现这个图形的规律,是不是一上一下或者一下一上,形成一个拐点就是答案呢?再来看看几种不符合情况的图:第一种情况: 只需要将标记红色的去除,即可得到wiggle su
2016-12-21 08:50:28 530
原创 LeetCode105: Construct Binary Tree from Preorder and Inorder Traversal
与题目106类似: 从前序遍历,与中序遍历中还原二叉树。 假设树: 通过先序遍历找到第一个点作为根节点,在中序遍历中找到根节点并记录index。 因为中序遍历中根节点左边为左子树,所以可以记录左子树的长度(index-in_left),并在先序遍历中依据这个长度找到左子树的区间,用同样方法可以找到右子树的区间。 递归的建立好左子树和右子树即可。 public c
2016-12-18 20:58:23 532
原创 LeetCode106:Construct Binary Tree from Inorder and Postorder Traversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {
2016-12-11 19:36:32 294
原创 LeetCode104:Maximum Depth of Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {
2016-12-11 11:17:38 288
原创 LeetCode110:Balanced Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {
2016-12-11 11:15:53 316
原创 LeetCode257:Binary Tree Paths
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {
2016-12-11 11:13:37 301
原创 LeetCode 357: Count Numbers with Unique Digits
public class Solution { public int countNumbersWithUniqueDigits(int n) { if(n==0) return 1; if(n==1) return 10; int ans =10; int base = 9; //int result=0;
2016-12-11 11:08:32 283
原创 Scala安装与语言基础语法笔记
工欲善其事必先利其器,先把环境配置一下吧。 下载 各种平台下scala: http://www.scala-lang.org/download/ 这里用windows平台下: windows: scala 2.12.1: http://downloads.lightbend.com/scala/2.12.1/scala-2.12.1.zip java环境 JDK1.8:http://ww
2016-12-11 10:58:26 341
原创 LeetCode111:Minimum Depth of Binary Tree
DFS系列思路: 1.边界条件:如果树为空,则返回 2.满足条件的解:当到达叶子节点时,即左右子树为空,则比较当前的深度与所记录的最小深度,若比最小深度小,则更新最小深度,否则不执行。 3.如果左子树不为空则进行搜索,如果右子树不为空则进行搜索。public class Solution { public int minDepth=Integer.MAX_VALUE; publ
2016-12-09 16:29:51 290
原创 LeetCode 20:Valid Parentheses
符号匹配问题,使用栈解决即可。 当为’(‘,’[‘,’{‘时,入栈即可,当遇到’)’,’]’,’}’时,当栈不为空则进行出栈操作,判断是否匹配。例如遇到’)’时,栈不为空且出栈的字符为’(‘即表示匹配,否则返回false检查字符是用==,检查String是用.equals(),因为String是引用类型,值相等但是地址可能不等。public class Solution { public
2016-12-08 21:28:51 239
原创 LeetCode 22 :Generate Parentheses
作为经典的回溯问题,这道题对于理解回溯的基本框架帮助还是挺大的。所谓Backtracking都是这样的思路:在当前局面下,你有若干种选择。那么尝试每一种选择。如果已经发现某种选择肯定不行(因为违反了某些限定条件),就返回;如果某种选择试到最后发现是正确解,就将其加入解集所以在思考问题的时候,首先需要考虑: 1. 边界条件(任何算法都需要考虑这个,往往输入并不如你所想那么理想) 2. 满足解的条件
2016-12-07 21:27:53 322
原创 LeetCode113:Path Sum II
将当前节点加入到临时存储集中,若满足条件则加入到结果集,否则向下搜索左右子树,在搜索完左右子树后还原(回溯法)1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就
2016-12-06 09:42:13 361
原创 LeetCode40:Combination Sum II
从集合中取n个数和为target,数字可能有重复,每个数字只能选一次,这道题目需要注意candidates[] 数组中的元素是会有重复的,所以答案里面会出现重复的解,需要在求解过程中对相同的数字不再进行深度搜索即可。 public class Solution { public List<List<Integer>> ans = new ArrayList<>(); public L
2016-12-04 18:16:29 289
原创 LeetCode216:Combination Sum III
从1-9中取k个数和为n,且数不重复。首先可能想到的是用一个boolean数组记录用过的数字,Boolean数组的下标+1即为数字。但这题我们发现,选取的数组是递增的,所以无需使用一个数组记录使用过的数字,我们取一个数然后往后枚举即可,当满足条件时,将当前的答案记录到集合中即可。public class Solution { public List<List<Integer>> ans = n
2016-12-03 10:43:23 310
原创 java中clone方法的作用
java中没有C/C++的指针,给程序员带来很多方便,但是这不意味着java没有指针,实质上每一次new语句返回的都是一个指针的引用。很多时候,我们往往忽略对象和引用的区别 例如:class obj2{ private int a =0; public int getA() { return a; } public void setA(int a) {
2016-12-02 21:32:40 4889 1
原创 LeetCode 39:Combination Sum
每一次向下搜索时,起始位置都和上一次相同,因为可以取相同元素不止一次,即每次向下传入的index For循环每次从index开始,避免返回到之前的元素 DFS搜索 如果sum>target 则return 如果sum == target 则记录下来 否则 继续DFS搜索public class Solution { public List<List<Integer>> ans =
2016-12-01 20:29:14 391
Washington Machine Learning_slider_PPT
2016-06-26
web页面如何实现跨域跳转问题
2018-03-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人