- 博客(46)
- 资源 (3)
- 收藏
- 关注
原创 LeetCode 136. Single Number 题解—— Java
题目链接:https://leetcode.com/problems/single-number/#/description题目要求:给定一个数组,其中只有一个数字只出现一次,其他数字都出现两次,找出这个只出现一次的数字。思路:将所有数字进行异或操作,最终得到的结果就是只出现一次的数。因为异或“相同为0,不同为1”,那么一个数的和它本身异或,就会变为0。举例如下:对于数字 3,7 ,
2017-03-21 20:43:55 405
原创 LeetCode 27. Remove Element 题解 —— Java
题目链接:https://leetcode.com/problems/remove-element/#/description
2017-03-21 20:24:56 429
原创 LeetCode 21. Merge Two Sorted Lists 题解 —— Java
题目链接:https://leetcode.com/problems/merge-two-sorted-lists/#/description题目要求:将两个有序列表合并为一个有序列表思路:循环比较两个链表的头元素,较小的那个加入新链表,然后指针后移;直到其中一个链表为空之后,将另一个链表加入到新链表中。Java代码如下:public class Solution {
2017-03-20 22:23:06 411
原创 LeetCode 203. Remove Linked List Elements 题解 —— Java
题目链接:https://leetcode.com/problems/remove-linked-list-elements/#/description题目要求:删除链表中的值为指定值的所有节点思路:该题的关键是 在head之前增加一个辅助节点,然后使用两个指针,一个previous,一个current,分别用来记录当前处理节点的前一个节点和当前处理节点。Java代码如下:
2017-03-20 21:54:52 422
原创 LeetCode 160. Intersection of Two Linked Lists 题解 —— Java
题目链接:https://leetcode.com/problems/intersection-of-two-linked-lists/#/description题目要求:找出两个链表的交叉点,若两链表没有交叉点,返回null。思路:(1)首先遍历两个链表,计算出两个链表的长度 O(N)(2)对于较长的那个链表,让该链表的指针先走几步——所走的步数为两链表的长度差(3)再让两链
2017-03-20 21:10:01 375
原创 LeetCode 70. Climbing Stairs 题解 —— Java
题目链接:https://leetcode.com/problems/climbing-stairs/#/description题目要求:实质上是求斐波那契数列的值。f(1)=1, f(2)=2, f(3) = f(2)+f(1)...求f(n)思路:采用求斐波那契数列的迭代算法。Java代码如下:public class Solution { public i
2017-03-20 20:51:11 512
原创 LeetCode 171. Excel Sheet Column Number 题解 —— Java
题目链接:https://leetcode.com/problems/excel-sheet-column-number/#/description题目要求:实质上是26机制的数转化为十进制。思路:举例来说,BAA=((B*26 + A) * 26 ) +AJava代码如下:public class Solution { // 26进制的计算 public int
2017-03-20 20:27:24 443
原创 LeetCode 121. Best Time to Buy and Sell Stock 题解 —— Java
题目链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock/#/description思路:对于数组中的每一个价格,记录当前位置的最低价格,然后计算出若当前售出,能获得的最大利润是多少。比较所有可能的利润,取最大值即为最终的最大利润。Java代码如下:public class Solution {
2017-03-20 20:11:21 555
原创 LeetCode 169. Majority Element 题解 ——Java
题目链接:https://leetcode.com/problems/majority-element/#/solutions题目要求:找出数组中的主元素方法一:首先最容易想到的方法是,将数组排序,最中间的数就是主元素。该方法的时间复杂度即为排序的时间复杂度,为O(n logn)Java代码如下:public class Solution { public int
2017-03-20 19:55:47 301
原创 LeetCode 26. Remove Duplicates from Sorted Array 题解——Java
题目链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array/#/description题目要求:对于一个已排好序的数组,返回去掉其中的重复元素之后的数组长度。思路:使用一个指针指示下一个不同的元素应该处于的正确位置。Java代码如下:public class Solution { pu
2017-03-20 19:30:55 338
原创 Python爬虫:Selenium+ BeautifulSoup 爬取JS渲染的动态内容(雪球网新闻)
最近要有一个任务,要爬取https://xueqiu.com/#/cn 网页上的文章,作为后续自然语言处理的源数据。爬取目标:下图中红色方框部分的文章内容。(需要点击每篇文章的链接才能获得文章内容)注:该文章仅介绍爬虫爬取新闻这一部分,爬虫语言为Python。 乍一看,爬虫的实现思路很简单:(1)从原始页面https://xueqiu.com/#/cn上爬取各篇文章
2017-03-20 18:07:43 20796 7
原创 LeetCode 11. Container With Most Water —— Java
题目链接:https://leetcode.com/problems/container-with-most-water/#/description题目要求:在n条不同高度的柱子中选择两个柱子,(每两个相邻柱子之间等间隔)使其构成的容器装水最多。思路:从左右两侧向中间靠拢(因为如果选择左右两侧的两个柱子,宽度已经最大,要想扩大容积...其实是面积...只能考虑增大高度)。首先选取的两个柱子
2017-03-17 23:22:05 354
原创 LeetCode 226. Invert Binary Tree 题解 —— Java
题目链接:https://leetcode.com/problems/invert-binary-tree/#/description题目要求:反转二叉树——左子树换成右子树,右子树换成左子树思路:首先将根节点的左右子树交换,然后递归的将左右子树再进行反转。Java代码:public class Solution { public TreeNode invertTr
2017-03-16 12:33:03 379
原创 LeetCode 100. Same Tree 题解 —— Java
题目链接:https://leetcode.com/problems/same-tree/#/description题目要求:判断两个二叉树是否完全一样思路:递归实现,首先判断根节点是否一样,然后递归判断两个二叉树的左子树和右子树是否完全一样。Java代码如下: public boolean isSameTree(TreeNode p, TreeNode q) {
2017-03-16 12:25:20 280
原创 LeetCode 96. Unique Binary Search Trees 题解 —— Java
题目链接:https://leetcode.com/problems/unique-binary-search-trees/#/description题目要求:给定正整数n,计算能构成的BST数量 (该BST存储的值为0~n)思路:动态规划,分别计算出当n = 1~n时,能够构成的BST的数量。f(1) = 1 // 当只有一个节点时能构成的BST的数量f(2) = 以1为根节点能
2017-03-15 21:02:57 298
原创 LeetCode 22. Generate Parentheses 题解 —— Java
题目链接:https://leetcode.com/problems/generate-parentheses/#/description题目要求:给定正整数n,求n对括号所有正确配对的组合。思路:采用分支限界和回溯算法,考虑一颗二叉树,根节点为(,向左右只添加左括号,向右走只添加有括号。在遍历该二叉树的时候,采用分支限界和回溯方法,只获得满足条件的括号对。Java代码如下:
2017-03-15 19:40:02 666
原创 LeetCode 222. Count Complete Tree Nodes 题解——Java
题目链接:https://leetcode.com/problems/count-complete-tree-nodes/#/description题目要求:计算完全二叉树的节点个数思路:首先想到的是直接的递归,二叉树的节点个数 = 左子树的节点个数 + 右子树的节点个数 + 1Java 代码如下:public class Solution { // 二叉树的节点数 =
2017-03-15 09:14:24 1134 1
原创 LeetCode 392. Is Subsequence 题解——Java
题目链接:https://leetcode.com/problems/is-subsequence/#/description题目要求:判断字符串s是不是字符串t的子序列方法一:首先想到的方法是,使用两个队列分别报错两个字符串中的各个字符,依次比较队首元素,若两个队列的队首元素相同,则表示到目前为止,s的前x个字符可以匹配为t的子序列;如果两个队列的队首元素不相同,则将t队列的
2017-03-14 22:30:23 810
原创 LeetCode 434. Number of Segments in a String 题解——Java
题目链接:https://leetcode.com/problems/number-of-segments-in-a-string/#/description题目要求:以空格为分隔符,计算字符串的段数。分析:此题初看简单,但是有些细节却需要注意(1) 对于“”的输入情况,需要单独处理一下,因为split方法会返回1而不是正确的结果0。(2)可能有多个空格相连的情况,比如输入“, ,
2017-03-13 20:34:07 653
原创 LeetCode 3. Longest Substring Without Repeating Characters 题解——Java
题目链接:https://leetcode.com/problems/longest-substring-without-repeating-characters/#/description题目要求:给定一个字符串,找出字符串中没有重复字符的子串的最大长度。思路:对于字符串中的每一个字符,找出以每一个字符为最后元素的,符合条件的子串的长度,将各个子串的长度值保存起来。遍历各个子串的长度值,
2017-03-13 19:59:01 356 2
原创 LeetCode 111. Minimum Depth of Binary Tree 题解——Java
题目链接:https://leetcode.com/problems/minimum-depth-of-binary-tree/#/description思路:二叉树的最小深度 = min {左子树的最小深度,右子树的做小深度 } + 1 ;使用递归求解。需要注意的是,求二叉树的最小深度比求二叉树的最大深度稍微复杂一点,有一种情况需要考虑:当根节点只有左子树或者只有右子树时...假设某二
2017-03-13 18:20:45 323
原创 LeetCode 110. Balanced Binary Tree 题解 - Java
题目链接:https://leetcode.com/problems/balanced-binary-tree/#/description题目要求:判断一棵树是否是平衡二叉树 最初尝试使用 | 二叉树的最大深度-二叉树的最小深度 | 对于上图所示的二叉树,树的最大深度是5,最小深度是3,5-3>1,但是这棵树是一颗平衡二叉树。因此上述方法不正确。
2017-03-13 16:56:04 449
原创 Java实现:在二叉树中,求距离最远的两个节点的距离
思路:递归的计算出:从每个节点出发,向左走的最大距离和向右走的最大距离,并以每个节点的这两个值为基础进一步计算和判断整个二叉树的最大距离。。。详细步骤见代码注释。Java代码如下:import java.util.LinkedList;import java.util.Queue;class Node { int data; Node left; Node right;
2017-03-13 12:34:14 2790
原创 Java-快速排序算法的实现
下面代码的一些提示:使用数组的首元素作为轴值;每次移动都是右指针先向左移动,直到遇到第一个比轴值小的元素 or 右指针遇到了做指针 停止; 接下来左指针向右移动,直到遇到第一个比轴值大的元素,或者遇到了右指针停止。当左右指针都停止移动时,如果两者已经相遇,则left指针(或right指针)所处的位置即为轴值应处于的正确位置,交换left指针处的值和轴值;若左右指针都停止移动时,两者尚未相遇
2017-03-13 10:47:02 258
原创 LeetCode 98. Validate Binary Search Tree 题解
题目链接:https://leetcode.com/problems/validate-binary-search-tree/?tab=Description思路:二叉搜索树的中序遍历应该是递增的序列,可以通过判断中序遍历的序列是否是严格增长的,来判断二叉树是否是二叉搜索树。Java代码如下:public class Solution { private List nodeList
2017-03-12 22:19:43 262
原创 LeetCode 236. Lowest Common Ancestor of a Binary Tree 题解
题目链接:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/?tab=DescriptionJava代码如下:public class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p,
2017-03-12 21:39:59 235
原创 LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 题解
题目链接:https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/?tab=Description
2017-03-12 20:59:59 316
原创 LeetCode 102. Binary Tree Level Order Traversal 题解
题目链接:https://leetcode.com/problems/binary-tree-level-order-traversal/?tab=Description题目要求:按层遍历二叉树,并要把每一层的元素放在一个链表中。思路:如果不要求用嵌套链表的形式存储元素,而只是按层次把元素输出,那可以直接使用队列实现,还比较简单。但是根据本题的要求,我们不得不记录下每一层的起始位置。我的做
2017-03-11 21:14:49 186
原创 LeetCode 108. Convert Sorted Array to Binary Search Tree 题解
题目链接:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/?tab=Description本题的要求是:将升序的数组转化为高度平衡的二叉搜索树。思路:使用递归求解,数组中间的元素作为root,左侧元素用来构造root的左子树,右侧元素用来构造root的右子树。如此递归下去。。。对于生成的B
2017-03-11 20:03:14 268
原创 LeetCode 104. Maximum Depth of Binary Tree 题解
题目链接:https://leetcode.com/problems/maximum-depth-of-binary-tree/?tab=Description思路:二叉树的最大深度= max{ 左子树的最大深度,右子树的最大深度} + 1Java代码如下:public class Solution { // 二叉树的最大深度等于max {左子树的最大深度,右子树的最大深度}
2017-03-11 19:37:01 246
原创 LeetCode 101. Symmetric Tree 递归解法
题目链接:点击打开链接s 思路:使用递归求解,首先需要判断根节点是否为null,若是,直接返回true;若不是,需要对root的左子树和右子树进行比较,是对称树的条件是:root.left和root.right相同;且root.left.left和root.right.right相同 且 root.left.right和root.right.left相同。 Java代码如下:pub
2017-03-11 19:14:46 276
原创 LeetCode 94. Binary Tree Inorder Traversal 题解
题目链接:点击打开链接 本题为非递归实现中序遍历。Java 参考代码如下:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val
2017-03-11 18:47:43 257
原创 LeetCode 268. Missing Number 题解
题目链接:点击打开链接 题目要求算法的时间复杂度为O(N),空间复杂度为O(1). 解题思路:输入序列为0...n(乱序)缺少其中一个数,所以数组的长度为n。举例来说,对于array[0],经过一次替换可以将它换到正确的位置;但是新替换过来的array[0]可能未必是0,继续将新的array[0]替换到正确位置....如此继续。最终最大的数n会被换到缺少的数字对应的位置,其他数组都被替换到
2017-03-08 12:00:55 302
原创 SSH配置免密码登录后,仍需要输入密码——解决方案
在配置SSH免密码登录的时候,发现配置完成后仍然需要输入密码,查看网络资源,意识到是文件权限问题,但是按照网上的很多博客都不成功。后来发现了问题所在:不止authorized_keys需要修改文件权限,.ssh文件夹的权限也需要修改。而且,如果配置已经完成了,再回头修改文件权限似乎也不能成功。下面介绍可以成功实现免密码登录的操作步骤: (注:操作系统为CentOS)
2017-03-05 19:25:59 26760 4
原创 LeetCode 404. Sum of Left Leaves 题解
题目链接:点击打开链接思路:使用递归。Java参考代码如下:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { v
2017-03-04 21:48:17 208
原创 LeetCode 387. First Unique Character in a String Add to List 题解
题目链接:点击打开链接思路:关键点就是用一个容量是26的数组来记录每个字母出现的次数。下标0-25分别映射到a-z。Java参考代码如下:public class Solution { public int firstUniqChar(String s) { // 使用一个容量为26的数组,使用下标0-25来映射a-z int[] count
2017-03-04 20:57:23 194
原创 LeetCode 155. Min Stack 题解
题目链接:点击打开链接 思路:本题的push、pop、top都可以直接使用java自带的stack实现。关键在于如何实现getMin()方法。 使用两个栈,第一个栈正常保存全部数据,第二个栈只保存数据中的“不升序”序列,这其中的奥妙需要自行体会一下.....Java 参考代码如下:import java.util.Stack;publi
2017-03-04 20:13:05 248
原创 LeetCode 380. Insert Delete GetRandom O(1) 题解
题目链接:点击打开链接 解题思路:使用数组可以在O(1)时间复杂度内实现查询(在这里就是:getRandom方法首先产生一个随机下标,然后通过下标访问数据,O(1)); 但是正常来说数组不能在O(1)时间复杂度内完成插入删除,此处的处理是, 对于插入:此题没有限制在指定位置插入数据,如果在数组的
2017-03-04 16:57:06 604
原创 Integer.parseInt()函数 NumberFormatException异常问题
在做LeetCode题目时,遇到了以下问题。在执行如下代码时,报异常:public class Test { public static void main(String[] args) { // 有符号数int的范围是[-2147483648,2147483647] // 共32位 String num1 = "1000000000000000000000000000000
2017-03-02 12:20:12 11398
原创 LeetCode 190. Reverse Bits 题解
题目链接:点击打开链接 先给出最先想到的解法,java代码如下:public class Solution { public int reverseBits(int n) { // 将整数转为二进制 String binaryString = Integer.toBinaryString(n); // 二进制字符串反转
2017-03-02 11:09:44 734
geckodriver-v0.15.0-win64
2017-03-20
Hadoop-Eclipse-Plugin-2.7.3
2017-03-09
c语言输入年月日且能防止错误输入
2013-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人