- 博客(39)
- 收藏
- 关注
原创 Ruby On Rails简介
以下文字基本 都是 复制粘贴一些重点内容详情看文档吧:https://guides.rubyonrails.org/v2.3.11/getting_started.htmlhttps://ruby-china.github.io/rails-guides/Basics什么是Ruby“Rails is a web development framework written in the Ruby language. It is designed to make programming web ap
2020-07-30 07:28:04
505
原创 算法分析, 时间复杂度,和BIG O,OMEGA, THETA NOTATION
实验方法用Java的StopWatch数据类型,记录从创建对象到算法完成所需的时间程序在不同的计算机上运行时间之比通常是一个常数。我们可以用幂次法则,绘制标准图像和对数图像。标准图像X轴为问题规模(N),y轴为运行时间T(N)。而对数图像中,x轴就是lg(N),y轴是lg(T(N))。对数图像会是一条直线,等价于我们对数据符合公式T(N)=aN^b的猜想。数学模型:一个程序运行的总时间主要...
2020-03-15 03:35:21
3056
原创 联合-查找算法(Union-find),基本原理,代码思路,Java实现,以及LeetCode习题
什么是Union-Find解决这类问题:我和小红是校友,小红和小明是校友,我和小明是校友吗?基本原理参考离散数学中的等价关系:自反性,对称性,传递性。自反性:我和我自己是校友对称性:我和小红是校友,小红和我也是校友传递性:我和小红是校友,小红和小明是校友,我和小明也是校友。(问题解决了)代码思路假如我们要在一个由N个对象组成的集合中来找相互关系,我们可以创建一个长度为N的数组。一...
2020-03-14 06:51:29
734
原创 Trie:字典树(AKA单词查找树)的定义,性质,Java实现和算法分析
Ref:算法第四版Definition定义:Trie: a tree of characters, and we make it out of a dictionary.字典树就是一颗由字符组成的树,我们可以将它理解为一个字典,字典树也允许我们用被查找的String中的一个char来开始进行查找。这个数据结构的作用就是取出数据,基本功能包括二叉树的那些,譬如查找,插入。Side notes...
2020-03-11 15:00:45
314
原创 【刷题第三周】宽度优先搜索
200. Number of Islands 102. Binary Tree Level Order Traversal 107. Binary Tree Level Order Traversal II 637. Average of Levels in Binary Tree 111. Minimum Depth of Binary Tree107. Binary Tree ...
2020-03-01 10:53:04
282
原创 【刷题第二周】二叉树与分治法
1. Maximum Depth of Binary Tree 2. Balanced Binary Tree 3. Path Sum 4. Flatten Binary Tree to Linked List 5. Validate Binary Search Tree (M) 6. Nearest Common Anscestor (M) 7.104. Maximum De...
2020-02-22 15:48:24
248
原创 【刷题第一周】StrStr和二分查找习题汇总
StrStr Basics 1. StrStr实现 2. Subsets I, II 3. Permutations I, II 4. Combination Sum递归模板Binary Search 1. Search in rotated sorted array 2. Find peak element 3. Peak Index in a Mountain Arra...
2020-02-19 03:39:45
146
原创 [7/9]双指针Leetcode和LintCode习题[to be finished]
1. Window Sum 2. Remove Duplicates 3. Remove Zeroes 4. Valid Palindrome - too easy 5. Rotate String 6. Recover Rotated Sorted Array 7. Two Sum - Less Than Or Equal To Target 8. Two Sum - Grea...
2020-01-13 06:22:59
264
原创 解题报告 60. Permutation Sequence [难]
60. Permutation Sequence总结概括自己对于这道题难度打分: 难这道题花费的时间: 很久…本题提交了几次: 2, Time Limit Exceed一句话评价本题: 巧妙的数学…要一个factorial数组,一个list记录所有的数字(1到n)。主要是先找到第k个排列是以哪个数字开头,然后再从后往前确定是开头数字之后是什么顺序。题目分析描述题意:返回1-n数组中第...
2020-01-08 05:09:09
133
原创 [4/9] 解题报告 宽度优先BFS作业题
200. Number of Islands总结概括自己对于这道题难度打分: medium,不会模板很麻烦这道题花费的时间:30min本题提交了几次:2一句话评价本题:中等难度,会模板就没有问题;不同于二叉树的宽度优先搜索,这题是简单版的图像BFS。题目分析描述题意:给一个2Darray,求所有岛屿的数量。岛屿的意思就是connected的’1’,上下左右相连就算connected,...
2020-01-05 10:39:39
170
原创 Topological Sorting 拓扑排序系列题目/课程表/宽度优先
LintCode 127. Topological Sorting题目链接给定一个有向图,图节点的拓扑排序定义如下:对于图中的每一条有向边 A -> B , 在拓扑排序中A一定在B之前.拓扑排序中的第一个节点可以是图中的任何一个没有其他节点指向它的节点.针对给定的有向图找到任意一种拓扑排序的顺序.思路:首先要找到starting node,也就是in-degree = 0...
2020-01-03 15:08:18
199
原创 解题报告 二叉树的traversal汇总 - 持续更新
102. Binary Tree Level Order Traversal总结概括自己对于这道题难度打分: 10%这道题花费的时间: 15min本题提交了几次:刚开始忘记考虑root==null了,吃了一个runtime error一句话评价本题:有模板就没问题,自己肯定写不出题目分析描述题意:基本操作之Binary Tree Level Order Traversal第一思路...
2019-12-31 06:03:07
132
原创 解题报告 103. Binary Tree Zigzag Level Order Traversal
总结概括自己对于这道题难度打分:50%这道题花费的时间:30min本题提交了几次: 1次,跪了一句话评价本题:not hard but takes practice to recognize the best way题目分析描述题意: 根据第一行从左至右,第二行从右至左,第三行从左至右这种顺序来遍历一个二叉树。要return一个list of list。第一思路是什么: BFS, 用...
2019-12-31 02:26:13
145
原创 [错题记录]113. Path Sum II
写的时候没注意在一条路到达root的时候还能删掉往其他地方走(其实就是dfs,但是当时无脑直接return)。如果是求boolean结果(有没有such path sum),即可以return true。在DFS的时候一定要注意要找all of the possible values。????加油~~~~...
2019-12-25 13:59:06
130
原创 Minimum Subtree 二叉树分治法例题
给一个二叉树,要找和尽量小的subtree。private TreeNode subTree = null; //用于记载最小的subtree的根结点private int subTreeSum = Integer.MAX_VALUE;public TreeNode findSubTree (TreeNode root){ subTreeSum = helper(root); retu...
2019-12-25 11:54:07
183
原创 448. Find All Numbers Disappeared in an Array
题目链接:https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/题目要求是在一个array里面找到没有出现的数字。给定一个长度为n的array,这个数组是应该由1~n数字组成的。譬如一个长度为4的数组,理应是[1,2,3,4]。但是可能given的array是[1,2,2,2],题目就是要把没出现过的[3...
2019-12-16 13:56:22
108
原创 【LeetCode】106. Construct Binary Tree from Inorder and Postorder Traversal 递归解析
呵呵呵呵这个题真的花了很久才懂!题目给了两个数组,分别是:inorder = [9,3,15,20,7](3左边是左子树,右边是右子树;“20”同理:15是左子树,7是右子树。)postorder = [9,15,7,20,3] (左子树 右子树 根结点)要我们建立一棵这样的树。在做所有的事情之前,首先创建一个hashmap,存inorder里面的每个元素的index。规律:第一,p...
2019-08-08 03:23:33
169
原创 Selenium - ERROR [Hub.start] - Port 4444 is busy, please choose a free port for the hub and specify
kill -9 $(lsof -ti tcp:4444)Kii anything on port 4444
2019-08-07 21:56:09
2640
1
原创 Error: Unable to access jarfile selenium-server-standalone-3.141.59.jar
Solution:切换到selenium-server-standalone-3.141.59.jar所在的文件夹就可以了。之前一直在桌面call这个command,就一直无法成功…sounds easy but people get stupid sometimes
2019-08-07 11:35:42
2433
原创 Python爬虫 - 用BeautifulSoup爬取CoreyMS博客的内容和视频地址到csv文件
from bs4 import BeautifulSoupimport requestsimport csvsource = requests.get("https://coreyms.com/").textsoup = BeautifulSoup(source, 'lxml')csv_file = open('scraping_coreyms.csv', 'w')csv_wri...
2019-08-01 11:38:57
319
原创 【LeetCode】计算器系列题目
Add 2 numbers没啥技巧,要注意edge case。[5]+[5]这种情况没有把握好,应该always记得append还没加完的进位的数字!if (add > 0){ //Something did not finish curr.next = new ListNode (add); }而且从白板上抄到电脑里不要写错hhhhh(yep...
2019-07-28 03:59:13
139
原创 【LeetCode】String题集合
寻找最长没有重复字母的substringNote that BF will take too much time!这题的特点在于如果出现一次重复就可以直接从重复的那个字符开始继续往后面搜,那么就可以用一个HashMap来存每个字母的last occurence。记录下前面的non-repeated substring的长度,update the result number iff anoth...
2019-07-28 03:54:32
124
原创 【LeetCode】第二次mock interview
788 Rotate Digitshttps://leetcode.com/problems/rotated-digits/这个题在MI过程中我想到了要用dp,因为n+1就是在n的基础上判断多出来的数字的valid的情况。但是实在是没有太懂这个题目(做完看别人的dp发现还挺难想出来的。。吼吼吼。。),于是英雄交白卷了(orz)。后来借鉴博主(https://www.cnblogs.com/gr...
2019-07-22 06:43:25
426
原创 【LeetCode】第一次mock interview
653 - Two Sum IV - Input is a BSThttps://leetcode.com/problems/two-sum-iv-input-is-a-bst/第一题edge case没过,心想着找到target就是在现在traverse的node的value上找到其与target的相差,然后在整个树里找相差,虽然时间是慢了点,但是就是我当时能想出来的唯一办法了orz。。结果...
2019-07-22 01:36:49
360
原创 Conditional Random Fields & Conditional Neural Fields 读论文总结(2)
CNF - 神经网络和对线数性模型的结合:虽然CRF(Conditional Random Fields)已经在自然语言处理和生物分析中广泛运用,核心是用一个线性方程在表现输入和输出之间的关系,但是在实际运用中,输入和输出的联系并不是线性的,这个关系可能会十分复杂, 所以应该使用CNF。CNF是CRF的一种提高版本:在输入和输出之间加一或多层layer;意思就是说这个中间层可以含有很多gate...
2019-07-18 02:36:41
422
原创 读Opinion Spam论文总结(1)【Collective Opinion Spam Detection: Bridging Review Networks and Metadata】
论文地址:http://shebuti.com/wp-content/uploads/2016/06/15-kdd-collectiveopinionspam.pdfAbstractOnline reviews capture the testimonials of “real” people and help shape the decisions of other consumers. ...
2019-07-11 03:36:13
1219
7
原创 C++ Final Study Guide Chap 14, 15
Chapter 14 - Static Member variables and Copy ConstructorsDo you know the difference between a static and a non-static member of a class?Do you understand the difference between a copy constructor,...
2019-03-19 06:08:51
244
原创 LeetCode456. 132 Pattern 使用Stack,java实现
题目要求:在一个数组中查找三个数,要求这三个数呈[1,3,2]的大小排列。也就是说,这三个数第一个数是最小值,中间的数是最大值,最后一个数是中间值。要注意的是这三个数字在原数组中不一定要是紧紧相邻的,中间可以相隔很多数字。思路:创建一个stack来存储一个从顶到低依次上升的数列,这就是可能成为[3]对应数的数字。变量middle:用于存储中间值,每次都要随着loop跟数组上的数字比较,如果...
2019-03-09 11:05:49
264
原创 LeetCode 263. Ugly Number && 264. Ugly Number II用java实现丑数的判定与查找
原题链接:https://leetcode.com/problems/ugly-number/https://leetcode.com/problems/ugly-number-ii/Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.丑数的定义:一个数字只有2,3,5三个质因子。1也是丑...
2019-02-25 05:14:01
211
原创 LeetCode 416. Partition Equal Subset Sum 动态规划解题日记
题意:给你一个数组,要你判断这个数组是否可以被切分成两个和相同的子数组。本题跟昨天post的找零钱有一些相似。注意:dp[j] = dp[j] || dp[j-nums[i]] 这句话的意思是,我们要判断是否可以通过nums里面的数字凑到j。随着i增加,dp[j-nums[i]]就在检查每一个nums里面的nums[i]是不是可以在原有的基础上加nums[i]得到j。也就是说,如果nums[i]...
2019-02-20 02:46:51
242
原创 LeetCode 394. Decode String java解题反思:利用双Stack和stringbuilder
题目:https://leetcode.com/problems/decode-string/我在脑子里decode这个题目的时候已经感觉到他是一层一层的、应该从里而外地分解开来。想了很久,一直都是想把char一个个地放入stack里面。然而…并非如此,我们应该开两个stack,一个用来存字符串,一个用来存某字符串重复的次数。因为每一个整数所对应的字符串都是紧邻着他的’]‘开始,到相应的’]...
2019-02-19 14:52:06
154
原创 LeetCode 322. Coin Change找零钱 动态规划 java
You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money...
2019-02-19 12:13:53
404
原创 LeetCode 70. Climbing Stairs 动态规划java解题日记
什么是动态规划Dynamic programming, like the divide-and-conquer method, solves problems by combining the solutions to subproblems.在Introduction to algorithms中,书里提到When developing a dynamic-programming algo...
2019-02-19 11:54:35
169
2
原创 C++入门易错点:输入输出格式、cmath头文件、生成随机数易错点、switch、scope、文件读写
关于C++,小白应该知道的那些细节说在前面关于C++与JavaC++入门须知规范用户的输入Formatting outputCMATH头文件生成随机数The Switch StatementScope与变量的重名字关于读取/写入文件关于Vectors生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新...
2019-02-12 05:58:06
562
原创 C++特殊的数据结构:struct
什么是structstruct是一种c++的数据结构,与class很相似。但是class具有一些struct不具有的特性,比如继承。struct主要用于存储一组数据,而class存储数据的同时也可以写入一些函数(methods)。Definition示例:struct Student {int id;string name;double gpa;}; //注意有分号struct允...
2019-02-11 13:51:53
382
原创 C++迷人的指针
指针基础什么是地址计算机内存中每个byte都会有一个独特的地址,一个变量的地址指的是该变量第一个byte的地址。char为一个byte,short有两个byte,float有四个byte。Address Operator&就是获取地址的符号。指针变量指针主要用于动态内存分配:当你的程序无法得知数据的大小的时候,最好的办法就是用动态内存分配去新建变量、数组、数据结构。创建指针...
2019-02-11 08:02:01
114
原创 C++入门笔记:当我们面向对象的时候我们到底在面对什么?
我怎么才可以有一个对象呢对象和类:其实在你定义第一个string字符串的时候,你就不知不觉地拥有了对象:你定义了一个string类的string对象。你也可以自己创建对象类型,一般通过三个文件来实现。人类就是一个类,一个人就人类这个class的一个对象。main.cpp这则是我们学习面对对象之前一直在使用的main方程,每个程序只可以有一个main方程。在main方程中,我们可以创建...
2019-02-10 06:55:55
137
原创 C++入门笔记:Vectors
关于VectorsSimilar to java ArrayList.C++的standard template library提供vector数据类型,而vector是一种container。container分为两种,sequence container将数据像array一样排列好;而associate container可以让程序员直接获得elements stored in t...
2019-02-10 03:32:59
171
原创 关于递归、回溯算法的思考
关于递归、回溯算法的思考一堆废话:记得第一次看递归的时候,看例子都满脑子浆糊。在LeetCode上做到combination sum, subsets系列的问题,从刚开始时的毫无思路,到现在知道要用递归并且有回溯的模板,但就是写不出来。学而不思则罔,所以现在打算写一篇小文章来总结、思考。用自己喜欢的方式解读递归一个例子:Java代码如下public class Recursion {...
2019-02-08 15:17:55
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人