- 博客(55)
- 收藏
- 关注
原创 [leetcode] Python(35)--Fizz Buzz(412)、计数质数(204)、3的幂(326)、罗马数字转整数(13)
从零开始的力扣(第三十五天)~ 1.Fizz Buzz 写一个程序,输出从 1 到 n 数字的字符串表示。 如果 n 是3的倍数,输出“Fizz”; 如果 n 是5的倍数,输出“Buzz”; 3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。 示例: n = 15, 返回: [ “1”, “2”, “Fizz”, “4”, “Buzz”, “Fizz”, “7”, “8”,...
2019-06-27 19:32:45
1088
原创 [leetcode] Python(34)--买卖股票的最佳时机(121)、最大子序和(53)、打家劫舍(198)、打乱数组(384)
从零开始的力扣(第三十四天)~ 1.买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时...
2019-06-27 13:09:36
847
原创 [leetcode] Python(33)--验证二叉搜索树(98)、将有序数组转换为二叉搜索树(108)、删除链表中的节点(237)、合并两个有序数组(88)
从零开始的力扣(第三十三天)~ 1. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 示例 2: ————————————————————————————————————————— 最开始想法是递归左子树与右子...
2019-06-26 17:32:16
843
原创 [leetcode] Python(32)--四数之和(18)、回旋镖的数量(447)、直线上最多的点数(149)、存在重复元素 III(220)
从零开始的力扣(第三十二天)~ 1.四数之和 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。 示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 targe...
2019-06-21 17:24:08
821
原创 [leetcode] Python(31)--第K个语法符号(779)、不同的二叉搜索树 II(95)、根据字符出现频率排序(451)、三数之和(15)
从零开始的力扣(第三十一天)~ 1.第K个语法符号 在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。 给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始) 例子: 输入: N = 1, K = 1 输出: 0 输入: N = 2, K = 1 输出: 0 输入: N = 2, K = 2 输出: 1 输入: N = 4, K = 5 输出: 1 ...
2019-06-13 09:58:30
864
原创 [leetcode] Python(30)--二叉树的序列化与反序列化(297)、两两交换链表中的节点(24)、斐波那契数(509)、爬楼梯(70)
从零开始的力扣(第三十天)~ 1.二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为...
2019-06-11 12:44:12
714
原创 [leetcode] Python(29)--填充每个节点的下一个右侧节点指针(116)、填充每个节点的下一个右侧节点指针 II(117)、二叉树的最近公共祖先(236)
从零开始的力扣(第二十九天)~ 1.填充每个节点的下一个右侧节点指针 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 ...
2019-06-10 22:13:18
905
原创 [leetcode] Python(28)--对称二叉树(101)、路径总和(112)、从中序与后序遍历序列构造二叉树(106)、从前序与中序遍历序列构造二叉树(105)
从零开始的力扣(第二十八天)~ 1.对称二叉树 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 说明: 如果你可以运用递归和迭代两种方法解决这个问题,会很加分。 ————————————————————————————————————————— 迭代法操作,只是迭代...
2019-06-10 16:18:10
804
原创 [leetcode] Python(27)--分割数组的最大值(410)、二叉树的前序遍历(144)、二叉树的后序遍历(145)、二叉树的层次遍历(102)、二叉树的最大深度(104)
从零开始的力扣(第二十六天)~ 1.分割数组的最大值 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 示例: 输入: nums = [7,2,5,10,8] m = 2 输出: 18 解释: 一共有四种方法将n...
2019-06-05 19:14:10
852
原创 [leetcode] Python(26)--寻找旋转排序数组中的最小值 II(154)、寻找重复数(287)、寻找两个有序数组的中位数(4)、找出第 k 小的距离对(719)
从零开始的力扣(第二十六天)~ 1.寻找旋转排序数组中的最小值 II 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 注意数组中可能存在重复的元素。 示例 1: 输入: [1,3,5] 输出: 1 示例 2: 输入: [2,2,2,0,1] 输出: 0 说明: 这道题是 ...
2019-06-01 12:47:30
532
原创 [leetcode] Python(25)--找到 K 个最接近的元素(658)、Pow(x, n)(50)、有效的完全平方数(367)、寻找比目标字母大的最小字母(744)
从零开始的力扣(第二十五天)~ 1.找到 K 个最接近的元素 给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。 示例 1: 输入: [1,2,3,4,5], k=4, x=3 输出: [1,2,3,4] 示例 2: 输入: [1,2,3,4,5], k=4, x...
2019-05-30 15:39:03
1162
原创 [leetcode] Python(24)--第一个错误的版本(278)、寻找峰值(162)、寻找旋转排序数组中的最小值(153)、在排序数组中查找元素的第一个和最后一个位置(34)
从零开始的力扣(第二十四天)~ 1.第一个错误的版本 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来...
2019-05-28 13:13:36
264
原创 [leetcode] Python(23)--二分查找(704)、x 的平方根(69)、猜数字大小(374)、搜索旋转排序数组(33)
从零开始的力扣(第二十三天)~ 1.二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例 2: 输入: nums ...
2019-05-27 17:17:31
587
原创 [Python教程] 各大排序算法总结
内容列表排序算法1.冒泡排序2.选择排序3.插入排序4.希尔排序5.快速排序6.归并排序7.堆排序堆堆排序节点访问和操作定义堆节点的访问堆操作总结 排序算法 1.冒泡排序 依次比较两个数大小,游标从前向后走,一次冒泡将最大元素移至末尾,以工作n - 1次冒泡。 def bubble_sort(alist): n = len(alist) for i in range(n -1):...
2019-05-27 11:45:28
384
原创 [TensorFlow] Python 从基础到项目学习笔记No.3
内容列表TensorFlow框架解决MNIST数字识别MNIST数据处理TensorFlow训练神经网络 TensorFlow框架解决MNIST数字识别 MNIST数据集一般是新手第一个接触的数据集,我目前也打算从这个数据集进一步了解TensorFlow的框架,开搞! MNIST数据处理 MNIST 是一个非常有名的手写体数字识别数据集, TensorFlow 的封装让使用 MNIST 数据集变得...
2019-05-24 21:54:54
298
原创 [leetcode] Python(22)--宝石与石头(771)、无重复字符的最长子串(3)、四数相加 II(454)、前K个高频元素(347)、常数时间插入、删除和获取随机元素(380)
从零开始的力扣(第二十二天)~ 1.宝石与石头 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。 示例 1: 输入: J = “aA”, S = “aAAbbbb” 输出: 3 示例 2: 输入...
2019-05-24 11:49:27
362
原创 [leetcode] Python(21)--同构字符串(205)、两个列表的最小索引总和(599)、存在重复元素 II(219)、字母异位词分组(49)
从零开始的力扣(第二十一天)~ 1.同构字符串 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = “egg”, t = “add” 输出: true 示例 2: 输入: s = “foo...
2019-05-23 13:32:15
347
原创 [leetcode] Python(20)--设计哈希集合(705)、设计哈希映射(706)、两个数组的交集(349)、快乐数(202)
从零开始的力扣(第二十天)~ PS.才发现leetcode有些题只有会员才能做了,难道要弃扣从牛了吗
2019-05-22 21:25:01
531
原创 [leetcode] Python(19)--两数相加(2)、扁平化多级双向链表(430)、复制带随机指针的链表(138)、旋转链表(61)
从零开始的力扣(第十九天)~ 1.两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> ...
2019-05-13 16:20:10
311
原创 [leetcode] Python(18)--反转链表(206)、移除链表元素(203)、奇偶链表(328)、回文链表(234)、合并两个有序链表(21)
从零开始的力扣(第十八天)~ 1.反转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? ————————————————————————————————————————— 暴力反转,两次循环,时间...
2019-05-12 22:00:59
320
原创 [leetcode] Python(17)--设计链表(707)、环形链表(141)、环形链表 II(142)、相交链表(160)、删除链表的倒数第N个节点(19)
从零开始的力扣(第十七天)~ 1.设计链表 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表类中实现这些功能: get(index):获取链表中第 inde...
2019-05-08 20:00:20
267
原创 [TensorFlow] Python 从基础到项目学习笔记No.2
内容列表TensorFlow搭建深层神经网络TensorFlow内置激活函数TensorFlow损失函数经典损失函数分类问题回归问题自定义损失函数TensorFlow神经网络优化算法学习率的设置防止过拟合小结 TensorFlow搭建深层神经网络 鉴于之前彻底的讲过神经网络的具体内容,本笔记就不过多赘述神经网络的构造了,只针对TensorFlow内部算法与函数介绍。 TensorFlow内置激活函...
2019-05-07 17:10:15
328
原创 [TensorFlow] Python 从基础到项目学习笔记No.1
刚刚做完一个项目,使用的Keras+TensorFlow框架,但是主题语言大多是用Keras写的,因为Keras封装的很好,总觉得写起来比较简单,想系统的学习一个主流框架的使用方式,目前主流框架有TensorFlow、Pytorch、Caffe等等,经过多方面考虑,打算系统学习TensorFlow,大打下较好的基础,从今天开始! 内容列表TensorFlow环境搭建TensorFlow入门介绍...
2019-04-29 16:25:57
492
原创 [leetcode] Python(16)--长度最小的子数组(209)、杨辉三角 II(119)、翻转字符串里的单词(151)、反转字符串中的单词 III(557)
从零开始的力扣(第十六天)~ 1.长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。 示例: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。 进阶: 如果你已经完成了O(n) 时间复杂度的解法...
2019-04-27 15:29:55
211
原创 [leetcode] Python(15)--数组拆分 I(561)、两数之和 II - 输入有序数组(167)、移除元素(27)、最大连续1的个数(485)
从零开始的力扣(第十五天)~ 1.数组拆分 I 给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。 示例 1: 输入: [1,4,3,2] 输出: 4 解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4). 提示: n 是正整...
2019-04-26 22:08:52
431
原创 [Python教程] Python timeit模块使用解析
timeit模块------准确测量小段代码的执行时间 timeit模块函数 该模块定义了三个使用函数和一个公共类 timeit.timeit(stmt=‘pass’, setup=‘pass’, timer=<default timer>, number=1000000) 创建一个Timer实例,参数分别是stmt(需要测量的语句或函数),setup(初始化代码或构建环境的导入语句)...
2019-04-23 17:26:20
6237
原创 [leetcode] Python(14)--对角线遍历(498)、螺旋矩阵(54)、杨辉三角(118)、二进制求和(67)
从零开始的力扣(第十三天)~ 1.对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。 示例: 输入: [[ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]] 输出: [1,2,4,7,5,3,6,8,9] 解释: 说明: 给定矩阵中的元素总数不会超过 100000 。 ———————...
2019-04-22 15:23:33
735
原创 [leetcode] Python(13)--01 矩阵(542)、钥匙和房间(841)、寻找数组的中心索引(724)、至少是其他数字两倍的最大数(747)
从零开始的力扣(第十三天)~ 1.01 矩阵 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 1 注意: 给定矩阵的元素个数不超过 10000。 给...
2019-04-21 17:46:33
366
原创 [leetcode] Python(12)--字符串解码(394)、图像渲染(733)
从零开始的力扣(第十二天)~ 1.字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数...
2019-04-20 23:09:47
424
原创 [leetcode] Python(11)--二叉树中的中序遍历(94)、用栈实现队列(232)、用队列实现栈(225)
从零开始的力扣(第十一天)~ 1.二叉树中的中序遍历 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? ————————————————————————————————————————— 通过遍历所有左子节点,当左子节点不存在时,写入...
2019-04-15 12:12:14
432
原创 [leetcode] Python(10)--克隆图(133)、目标和(494)
从零开始的力扣(第十天)~ 1.克隆图 给定无向连通图中一个节点的引用,返回该图的深拷贝(克隆)。图中的每个节点都包含它的值 val(Int) 和其邻居的列表(list[Node])。 示例: 解释: 节点 1 的值是 1,它有两个邻居:节点 2 和 4 。 节点 2 的值是 2,它有两个邻居:节点 1 和 3 。 节点 3 的值是 3,它有两个邻居:节点 2 和 4 。 节点 4 的值是 4...
2019-04-13 14:35:51
397
原创 [leetcode] Python(9)--最小栈(155)、有效的解答(20)、每日温度(739)、逆波兰表达式求值(150)
从零开始的力扣(第九天) 1.最小栈 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); min...
2019-04-11 17:23:56
286
原创 [leetcode] Python(8)--设计循环队列(622)、岛屿的个数(200)、打开转盘锁(752)、完全平方数(279)
从零开始的力扣(第七天)~ 1.设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。 ...
2019-04-10 22:37:11
600
原创 [leetcode] Python(7)--验证回文串(125)、字符串转换整数 (atoi)(8)、实现strStr()(28)、报数(38)、最长公共前缀(14)
从零开始的力扣(第六天)~ 1.验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Panama” 输出: true 示例 2: 输入: “race a car” 输出: false ———————————————————————————...
2019-04-09 21:48:29
604
原创 [leetcode] Python(6)--反转字符串(344)、整数反转(7)、字符串中的第一个唯一字符(387)、有效的字母异位词(242)
从零开始的力扣(第六天)~ 1.反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“...
2019-04-08 22:57:23
318
原创 [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 13笔记
内容列表Lecture 13 Segmentation and Soft AttentionSegmentationSoft Attention小结 Lecture 13 Segmentation and Soft Attention 本章节主要介绍分割模型与注意力模型 Segmentation 分割模型其实也会分为两种,一种是只进行分割,将不同类别以像素级分别表示,另一种全分割就是在分割的基础上...
2019-04-08 19:31:07
975
原创 [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 12笔记
内容列表Lecture 12 Software PackagesCaffePytorchTheanoTensorFlow小结 Lecture 12 Software Packages 本章节介绍深度学习的常用框架,包括Caffe,TensorFlow,Pytorch等。 Caffe Caffe是一个清晰而高效的深度学习框架,本节介绍caffe的优势、架构,网络定义、各层定义,Caffe的安装与配置...
2019-04-07 22:24:25
792
原创 [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 11笔记
内容列表Lecture 11 CNNs in PracticeTransfer Learning卷积的那些事卷积替换加速卷积计算更加高效的实行细节GPU浮点精度小结 Lecture 11 CNNs in Practice 本章节最先介绍了数据扩充的技巧,这个内容我在Lecture 6里介绍了,这里就不过多叙述了。 Transfer Learning 迁移学习(Transfer learning) ...
2019-04-07 14:34:05
644
原创 [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 10笔记
内容列表Lecture 9 Recurrent Neural NetworkRNNLSTM小结 Lecture 9 Recurrent Neural Network RNN 本章节主要探讨循环神经网络的内容,它与卷积神经网络略有不同,RNNs的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多...
2019-04-05 21:54:39
1012
原创 [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 9笔记
内容列表Lecture 9 Understanding and Visualizing Convolution Neural Networks卷积神经网络内部可视化滤波器/卷积核可视化可视化中间激活层结果最大可视化某一类别Deep DreamNeural Style小结 Lecture 9 Understanding and Visualizing Convolution Neural Netwo...
2019-04-04 11:35:52
659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅