自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Irving_zhang的专栏

对代码的不满足,是所有程序员的本质特征

  • 博客(22)
  • 资源 (5)
  • 收藏
  • 关注

原创 leetcode题解-135. Candy

题目:给小孩分糖果,每个小孩至少要分一个糖果,如果这个小孩的rating比相邻的小孩高,那么他分的糖果也要比相邻小孩多,问最少需要多少糖果?题目分析:使用额外空间candy[n]表示每个孩子的糖果数,在遍历过程中,如果第i+1位的孩子的ratings大于第i位孩子的ratings,那么给第i+1位的孩子糖果数=给第i位的孩子的糖果数+1。 如果孩子i+1的rate小于等于孩子i 的rate怎么办?

2017-10-28 17:35:58 555

原创 leetcode题解-134. Gas Station

题目:环形路线上有N个加油站,每个加油站有汽油gas[i],从每个加油站到下一站消耗汽油cost[i],问从哪个加油站出发能够回到起始点,如果都不能则返回-1(注意,解是唯一的)。题目分析:暴力的方法比较容易想到,就是从每一个站开始,一直走一圈,累加过程中的净余的油量,看它是不是有出现负的,如果有则失败,从下一个站开始重新再走一圈;如果没有负的出现,则这个站可以作为起始点,成功。时间复杂度是O(n^

2017-10-27 17:28:24 705

原创 leetcode题解-73. Set Matrix Zeroes

题意:给定一个二维数组表示一个矩阵,如果某个元素为0,那么把这个元素所在行和列的所有元素置为0。不使用额外空间。题解:如果使用额外空间,那么就需要记录含零元素的行列情况。如果不使用额外空间,就不能使用额外的数组或者HashSet来记录含0元素的位置情况。因此就要考虑在矩阵本身进行操作。具体操作:我们以矩阵的第一行和第一列空间来分别存储矩阵中所有“0”出现的行、列下标,第一行存储列下标,第一列存储行下

2017-10-27 16:26:51 459

原创 leetcode题解-89. Gray Code

题目:给出一个整数n,返回n位数格雷码的序列。gray code中文名叫格雷码例子:以n=2为例:00 - 0 01 - 1 11 - 3 10 - 2返回包含0,1,3,2的List。题解:典型的模拟题,我们可以多写几个例子出来找规律。n=3时:0 0 0 - 0 0 0 1 - 1 0 1 1 - 3 0 1 0 - 2 1 1 0 - 6 1 1 1 - 7 1 0 1 -

2017-10-27 16:12:08 476

原创 leetcode题解-70. Climbing Stairs

题目:每一次你都可以爬一步或者爬两步,问有多少种方式爬到楼顶?分析:设 f (n) 表示爬 n 阶楼梯的不同方法数,为了爬到第 n 阶楼梯,有两个选择: 1. 从第 n - 1 阶前进 1 步; 2. 从第 n - 2 阶前进 2 步;因此,有 f (n) = f (n - 1) + f (n - 2),这是一个斐波那契数列。题解:有两种方式,第一种是在学习c++的时候经常练习的递归

2017-10-27 16:08:06 590

原创 leetcode题解-66. Plus One

题目:给定一个数组表示非负整数,其高位在数组的前面,对这个整数加1。题解:简单的大数加法,遍历数组的每位,同时处理进位,如果最后还有进位,则在数组最前面在插入1即可。时间复杂度:O(n) 空间复杂度:O(1)import java.util.Arrays;public class Solution { public static int[] plusOne(int[] digits) {

2017-10-27 15:59:02 875

原创 leetcode题解-48. Rotate Image

题目:给定一个n*n个2维矩阵来表示一个图。在原矩阵上顺旋转图形90°。 例子: 题解:在原矩阵的基础上进行操作(in-place),所以找到数组元素在旋转前后的对应关系即可,以下图为例:import java.util.Arrays;public class Solution { public static void rotate(int[][] matrix) { /

2017-10-27 15:48:45 674

原创 leetcode题解-42. Trapping Rain Water

题目:给出 n 个非负整数,代表一张X轴上每个区域宽度为 1 的海拔图, 计算这个海拔图最多能接住多少(面积)雨水。例子:海拔分别为 [0,1,0,2,1,0,1,3,2,1,2,1], 返回 6. 题解: 此题有solution,因此直接搬运: 1、暴力解法 暴力解法实际上和我们手算过程非常类似,以i=5时的height[i]=0为例,怎么看i=5处能积多少水呢?首先从left=0处向右扫

2017-10-27 11:31:13 1401

原创 leetcode题解-36. Valid Sudoku

题目:检查输入是否为一个合法数独。一个数独合法的标准如下:每一行每一列必须包含1-9之间的每一个数字(包括1和9)每一个小的正方形矩阵中必须包含1-9之间的每一个数字(包括1和9)所以总体思路就是遍历数独,判断行、列以及每一个小的正方形中的数字是否合法。代码分析:当checkRow、checkCol和checkSub都返回true时,isValidSudoku返回true。 1. check

2017-10-24 09:38:59 478 1

原创 leetcode题解-31. Next Permutation

题目:对于给定的一个全排列,求解其“下一个”全排列。对于不了解全排列是什么的同学,可以点击此处进行查看全排列-百度百科。例子: 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1题解:这道题让我们求下一个排列顺序,可以分为两种情况。第一种,类似于[6,5,4,3,2,1]这种,这是全排列中最后一个排列,那么直接将数组逆序,返回[1,2,3,4,5,6]即可。第二

2017-10-23 20:36:47 659

原创 leetcode题解-27. Remove Element

题意:把数组中与给定值相同的元素删除,在原数组上修改,返回值是最终元素个数。例如:nums = [3,2,2,3], val = 3 将val=3删除完以后,最终元素个数为2,返回2。思路:用一个索引i记录不含给定数字的数组边界,另一个索引j记录当前遍历到的数组位置。只有nums[j] != val时,才会赋值nums[i] = nums[j]。复杂度:时间 O(N) 空间 O(1)publi

2017-10-23 19:30:13 465

原创 基于深度学习的大规模多标签文本分类任务总结

自然语言处理方向的论文仿真到现在,有以下想法: 1. 很多模型都为启发式算法,从直观上很好理解,但是对于大多数人来说,就是一个黑盒,70%时间都在处理数据和调参。 2. 在数据竞赛中,常用的模型就是CNN和RNN,先调出baseline,然后再进行模型融合(model ensemble)。在以上步骤的约束下,数据竞赛比的就是设备的计算能力和个人的调参能力。 3. 在自然语言处理与NLP实战的...

2017-10-18 15:32:49 20479 5

原创 leetcode题解-16. 3Sum Closest

和 3Sum解题报告很像,但不同的是,不再是求三个数的和是不是为0,而是看三个数的和与target的差是否为最小,只需记录当前最优解closest并不断更新其值就可。但是容易出错的地方是,把 closest 初始值设为 Integer.MAX_VALUE,然后后面计算 closest = Math.abs(closest - target),这样会导致溢出。import java.util.Arra

2017-10-17 11:51:11 459

原创 leetcode题解-18. 4Sum

这道题要求跟3Sum差不多,只是需求扩展到四个的数字的和了。我们还是可以按照3Sum中的解法,只是在外面套一层循环,相当于求n次3Sum。我们知道3Sum的时间复杂度是O(n^2),所以如果这样解的总时间复杂度是O(n^3)。代码如下:public static List<List<Integer>> fourSum(int[] num, int target) { List<Lis

2017-10-17 11:46:38 313

原创 leetcode题解-15. 3Sum

这道题是Two Sum的扩展,暴力法时间复杂度为O(n^3),对每三个数进行比较,显然是不可取的。这道题和Two Sum有所不同,使用哈希表的解法并不是很方便,因为结果数组中元素可能重复,如果不排序对于重复的处理将会比较麻烦,因此这道题一般使用排序之后夹逼的方法,总的时间复杂度为O(n^2+nlogn)=(n^2),空间复杂度是O(n),代码如下:import java.util.ArrayList

2017-10-17 10:13:28 412

原创 leetcode题解-1. Two Sum

给定一个整型数组,找出能相加起来等于一个特定目标数字的两个数。函数 twoSum 返回这两个相加起来等于目标值的数字的索引,且 index1 必须小于 index2。 请记住你返回的答案(包括 index1 和 index2)都不是从 0 开始的。你可以假定每个输入都有且仅有一个解决方案。输入: numbers={2, 7, 11, 15}, target=9 输出: index1=1, inde

2017-10-17 09:22:34 828

原创 leetcode题解-128. Longest Consecutive Sequence

题目:给出一个没有排序的整数数组,找出最长的连续元素序列的长度。 例如, 给定[100,4,200,1,3,2], 最长的连续元素序列是[1,2,3,4]。返回它的长度:4。 你的算法应该运行在O(n)的复杂度。分析:将所有数都加入集合或者MAP中,然后再遍历这些数。我们以MAP举例,选取关键元素向上或者向下检查有无连续值。比如选取关键元素4,先往上找,MAP中不存在5。再在MAP中

2017-10-13 22:17:59 481

原创 leetcode题解-4. Median of Two Sorted Arrays

本题难度为hard,确实不容易做出来。之前做的时候时间复杂度最差应该是O(m+n),不符合题目要求,因此这次再刷的时候又反复看资料,选择了一个O(log(m+n))的方法。其实还有一个O(log(min(m,n)))的方法在官方的article中,但是不容易理解,并且不具有代表性,因此这里只介绍O(log(m+n))的算法。该问题的核心是将原问题分解成一个寻找第k小数的问题(假设两个原序列升序排列)

2017-10-13 21:01:54 822

原创 leetcode题解-81 Search in Rotated Sorted Array II

本题和上一题Search in Rotated Sorted Array唯一的区别是,这道题目中元素会有重复的情况出现。正是因为这个条件的出现,出现了比较复杂的情况,影响到了算法的时间复杂度。 原来我们是依靠中间和边缘元素的大小关系,来判断哪一半是不受rotate影响,仍然有序的。而现在因为重复的出现,如果我们遇到中间和边缘相等的情况,我们就丢失了哪边有序的信息,因为哪边都有可能是有序的结果。假设

2017-10-11 19:09:57 848

原创 leetcode题解-33 Search in Rotated Sorted Array

数组部分第三题。把一个严格升序的数组进行旋转,如[0,1,2,3,4,5]向前旋转3位成为[3,4,5,0,1,2]。在这样的数组中找到目标数字。如果存在返回下标,不存在返回-1。 例子: 输入: nums = [4, 5, 6, 7, 0, 1, 2], target = 6 输出: 2 输入: nums = [4, 5, 6, 7, 0, 1, 2], target = 3 输出:

2017-10-10 15:05:45 1951

原创 leetcode题解-80 Remove Duplicates from Sorted Array II

数组部分第二题,和Remove Duplicates from Sorted Array类似: 描述:移除出现超过两次的数组元素 输入:数组,如nums = [1,1,1,2,2,3] 返回:得到返回结果5,即[1,1,2,2,3]五个元素。函数操作过后的数组长度不要求,但前5个必须是1,1,2,2,3。在本例中操作过后的nums为[1,1,2,2,3,3]因为nums[5]=3并没有改动。本

2017-10-09 16:39:01 670 1

原创 leetcode题解-26 Remove Duplicates from Sorted Array

本系列按照数组、字符串、链表、栈、树、图、排序、查找、分治、贪心、动态规划等顺序进行刷题。这应该是第三次刷题了,所以应该对每道题进行总结,包括最直观的暴力解、优化解以及最优解的分析。说明空间和时间复杂度,并能举一反三进行对比。说一下两边刷下来的直观感受,就是看到easy的题目,基本上就能出来答案。所以刷题并不是一个天赋的比拼,而是坚持的较量。本题考察数组的基本操作,属于面试中比较简单的题目。做法是维

2017-10-08 14:18:13 606

第十三到十五课

斯坦福人工智能实验室是人工智能领域的扛把子。本笔记是于NG的CS229课程的讲解做出,NG风度翩翩,逻辑清晰,有着理工男特有的人格魅力。本笔记也会结合《统计学习方法》和林轩田《机器学习基石》对NG课程没有展开的点做通俗的说明,一来做到理清知识点关系,二来可以备忘,温故知新。

2018-01-12

第十到十二课

斯坦福人工智能实验室是人工智能领域的扛把子。本笔记是于NG的CS229课程的讲解做出,NG风度翩翩,逻辑清晰,有着理工男特有的人格魅力。本笔记也会结合《统计学习方法》和林轩田《机器学习基石》对NG课程没有展开的点做通俗的说明,一来做到理清知识点关系,二来可以备忘,温故知新。

2018-01-12

第七到九课

斯坦福人工智能实验室是人工智能领域的扛把子。本笔记是于NG的CS229课程的讲解做出,NG风度翩翩,逻辑清晰,有着理工男特有的人格魅力。本笔记也会结合《统计学习方法》和林轩田《机器学习基石》对NG课程没有展开的点做通俗的说明,一来做到理清知识点关系,二来可以备忘,温故知新。

2018-01-11

第四到六课

斯坦福人工智能实验室是人工智能领域的扛把子。本笔记是于NG的CS229课程的讲解做出,NG风度翩翩,逻辑清晰,有着理工男特有的人格魅力。本笔记也会结合《统计学习方法》和林轩田《机器学习基石》对NG课程没有展开的点做通俗的说明,一来做到理清知识点关系,二来可以备忘,温故知新。

2018-01-11

机器学习要点第一到三课

斯坦福人工智能实验室是人工智能领域的扛把子。本笔记是于NG的CS229课程的讲解做出,NG风度翩翩,逻辑清晰,有着理工男特有的人格魅力。本笔记也会结合《统计学习方法》和林轩田《机器学习基石》对NG课程没有展开的点做通俗的说明,一来做到理清知识点关系,二来可以备忘,温故知新。

2018-01-11

空空如也

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

TA关注的人

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