自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode刷题之旅——215. Kth Largest Element in an Array

        这道题目是分治算法中的一道题目,中等难度里面通过率为37%的一道求数组当中最大元素的一道题目。题目大意:        给定一个数组,然后给定我们一个数字代表第几大的数,比如这个数字为1,那么就是从这个数组当中挑选出第一大的数字。例子:         For example,         Given [3,2,1,5,6,4] and

2017-01-07 14:38:26 436

原创 leetcode刷题之旅——474. Ones and Zeroes

这道题目是典型的二维背包问题,在动态规划中为middle,通过率35%的一道中级题目。题目大意:        给定我们一个01字符串数组,然后给定我们固定的1的数量和0的数量。问的是我们最多可以用这些1和0,组成多少个字符串。固定的1和0的数目就是我们背包的体积,而每个字符串的价值都是1,而消耗的空间就是组成该字符串的1和0的数量,价值为都是1。例

2017-01-07 12:12:40 380

原创 leetcode刷题之旅——112. Path Sum

        这道题目是easy题目当中通过率为32%的题目,是DFS算法的一道比较典型的题目。题目大意:        给定一个二叉树和一个sum值,如果在该二叉树中可以找到一个从根节点到叶节点的路径,通过节点值的和等于sum值,就返回true。例子:        Given the below binary tree and sum = 22,

2016-11-30 22:34:06 225

原创 leetcode刷题之旅——376. Wiggle Subsequence

        该题是一道中等难度,通过率34%的贪心算法题目,但是通过动态规划也可以对该题进行求解。题目大意:        给定一个数组,让我们求解该数组的最大摆动子序列。何谓摆动子序列呢,就是一个大一个小,或者用相邻差值来说的话就是一个正数一个负数这样的序列就是摆动序列。例子:        Input: [1,7,4,9,2,5]Output: 6The ent

2016-11-23 19:34:46 272

原创 算法第8章习题——8.13题

a) 这个问题是属于 P 的,解法如下:    选取任意一个V−L 中的顶点s,以s为根节点进行深度优先搜索,每当访问到L中的顶点时,就停止向下扩展,使得L中的顶点成为叶节点。如果深度优先搜索完成后,所有顶点都已经被访问到,这颗生成树即是满足条件的。否则就说明这样的生成树不存在。b) 是 NP 完全的,因为恰好有一个叶节点的生成树即是一条Rudrata 路径。 c) 是 N

2016-11-19 21:55:40 264

原创 leetcode刷题之旅——91. Decode Ways

        选择了动态规划题目当中通过率18%的一道中级题,比之前做的简单题要复杂很多,虽然代码量很少。题目大意:        给定我们一个映射,1-26对应着A-Z这26个字母。现在我们要对一封信进行解密,这封信是用英语写的,然后以这种映射关系被编码成了数字信。我们要做的就是将其解码,计算出一共有多少种解码方式。例子:        For example,  

2016-11-15 21:45:21 320

原创 leetcode刷题之旅——70. Climbing Stairs

继续做一道easy的动态规划题目,通过率38%题目大意:        现在给定一个有n个台阶的楼梯,你现在在最下面,而且你每步只能迈一个或者两个台阶。如果要你到达楼梯的顶端,你可以采用几种不同的方法来走。算法:        用动态规划算法来解决这道题目,首先我们考虑第一步的问题。第一步可以走两个台阶,也可以走一个台阶,所以就分了两种情况。一种情况是,我们第一步只走一个台阶,这样

2016-11-15 21:32:29 171

原创 leetcode刷题之旅——121. Best Time to Buy and Sell Stock

        一道动态规划当中的简单题目,先拿简单题目加深自己对动态规划的理解。题目大意:        给定我们一个数组,里面的第i个数字代表第i天的袜子价格,我们所需要做的就是以低价买入,高价卖出。最后我们返回我们可以获得利润的最大值。例子:        example 1:              Input: [7, 1, 5, 3, 6, 4]   

2016-11-15 21:10:27 340

原创 leetcode刷题之旅——55. Jump Game

做过了贪心算法中比较简单的一道题,选择了这道通过率百分之二十多的题目,虽然也是middle,但是感觉比前面的那道题目难想很多。题目大意:        给定一个非负整数的数组,现在我们目的是要跳到最后一个数,我们现在的位置是第一个数字所在的位置。那么我们一次最大能条多少步呢?我们每次最大能跳的步数就是我们当前坐在位置的数字,比如我们现在所处的位置的数字是5,我们就可以选择往后跳5步或者比5

2016-11-03 23:26:17 229

原创 leetcode刷题之旅——406. Queue Reconstruction by Height

本周和上周都讲了贪心算法,所以在leetcode上面挑了Greedy的算法题目来做。首先这道题目是所有贪心算法里面最简单的,是middle里面通过率最高的一道题目。题目大意:        给定一个队列,每一个元素代表一个人,每个人有两个属性,一个是他自身的身高,另一个是排在他前面比他身高要高的人数。本题给定这样一个vector,用来盛放每个人的个人信息,然后让你按照每个人的这两个元素对这

2016-11-03 20:23:55 597

原创 java and python学习——第四周leetcode刷题

本周按照顺序继续做leetcode中的题目,随着难度的递增,做题已经不能像之前那样非常快地想出算法了。虽然都是简单题,但是通过率也都缩小到了百分之三十多。最重要的是,这样的基础题会让我对于java和python的使用更加熟悉,起初那几周我要用到什么函数还要去查一下书,现在有些函数我就直接记住并且使用了。这一个月以来,我觉得我收获还是很大的,每周虽然只有五道题,但是通过练习,感觉对于java和pyt

2016-09-27 19:15:36 288

原创 java and python学习——第三周leetcode刷题

本周仍旧是按照顺序做leetcode上的题目,可能是因为不经常用这两种语言,所以在编题的时候稍微有点生疏。所以下个星期我准备再返回头好好看一下我自学的java和python的内容,再回头看一下前两周做过的题目。将基础的每一步都做得扎实一点,学以后的东西就会事半功倍,否则我怕会越来越困难。当然,每周做的题目都会比上一周难一点,但是不会难太多,我都是按照难易顺序一道一道刷的,下面就是本周做的五道题目。

2016-09-19 20:05:49 246

原创 leetcode刷题之旅——53. Maximum Subarray

本周写的第二道分治算法的题目,因为上次选择的是一道easy的题目,为了提升自己,这次选择了一道middle难度的题目。虽然这道题目是middle的,但是我还是想了很长时间。其实这道题目可以用动态规划直接用O(n)的复杂度来解决,代码也很简单,但是如果想要用分治法就比较难想一点。        先说一下动态规划的算法。就是初始化max和sum两个变量,一个代表最终的结果最大值,另一个用来选择是加

2016-09-12 23:13:48 416

原创 java and python学习——第二周leetcode刷题

学习java和python的第二周,感觉学习到了好多,收获了好多。当然,还是要一步一个脚印走,稳扎稳打,把基本功练好再去做更高级的事情。本周选择了比上周稍微难了一点的题目,通过率都是百分之四十。389. Find the Difference    这道题给我们两个字符串,第二个字符串只比第一个多一个小写字母,让我们把这个“异类”找出来。我的算法是这样的,用两层循环,如果对于第一个字符串中

2016-09-11 22:22:01 287

原创 leetcode刷题之旅——169. Majority Element

本周学习了分治法,所以准备在leetcode中挑选几道分治算法的题目来写。然而分治算法题目当中只有一道是easy,其他都是middle或者hard的题目,让我很慌。所以先把这唯一一道easy的题目写出来,给自己长点自信。        这道题目的意思就是从一个数组当中找到出现次数大于n/2的那个数,即题目当中给我们的主元素。        先说一下对于这道题目,我的分治算法是怎样的。首先,

2016-09-11 22:01:02 296

原创 java and python学习——第一周leetcode刷题

因为是刚刚开始学习java和python语言,还不太熟悉应该怎么用这两种语言编程,所以就选择了leetcode上最简单的五道题来做。344、Reverse String    这道题没有什么难度,是leetcode中最简单的一道,反转字符串。头和尾两两交换位置即可,开始将string转为char数组,最后再转换为string类型。java版本:public class Soluti

2016-09-10 22:46:28 1068

原创 leetcode刷题之旅——338Count Bits

因为感觉大多数easy的题目对于我们来说稍微有些简单,所以这回选择了一个middle中通过率最高的题目来做,看看到底middle的难度有多大。    这道题的题目意思是,给我们一个数,让我们计算出从0开始到这个数中间的所有数字,他们的二进制表示方法中有多少个1,并将统计结果放到一个数组中。    比如给定数字5,{0,1,2,3,4,5}分别统计出来的结果就是{0,1,1,2,1,2},以

2016-09-07 01:30:36 589

原创 leetcode刷题之旅——66Plus One

因为以前对于C++有过编程基础,但是水平又不是那么高,所以选择了easy中通过率比较低的题目。66题就是一道通过率比较低的简单题型,通过率不到百分之四十。    首先分析一下题目的意思,本题给了一个用vector保存了各位数的数,然后让我们给这个数加一。    其实这道题就是让我们用数组来模拟一下整数的加法。    首先我们必须要知道这个数的位数,这很容易实现。其次我们还要设置

2016-09-07 00:35:39 367

空空如也

空空如也

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

TA关注的人

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