- 博客(21)
- 收藏
- 关注
原创 滑动窗口类型总结
滑动窗口类型题目总结1. 滑动窗口应用场景子数组子串问题:条件单调性场景,窗口扩大使得满足题目条件的概率增加,窗口减小必然使得题目条件概率减小。第二点是关键,如果不满足,则无法使用滑动窗口方法来解决题目。2. 基本框架这里采用的框架是labuladong的滑动窗口框架,原因是简单好用,用的熟悉。int left = 0; int right = 0; // 左右边界while (right < s.size()) { // 滑动窗口的范围是[left, right),
2021-04-06 23:01:08 397
原创 快速排序总结
快速排序1. 写在之前快速排序还有不会的?虽然快速排序的想法深入各个程序员的心中,但在面试高压情况下,想要一次流畅正确地写出快排或者用到快排的题目并非容易的事情,经常会出现一些这样那样的小bug,给面试官留下不好的映象。本文将解决:快速排序的一般框架两种划分方法以及可能出错的点循环不变量验证2. 快排框架快速排序的框架非常简单,与归并排序一样,是分治法的体现,思路为:假设为升序排序,快排将数组划分为两个部分,左边的部分小于某数,后边的部分大于某数,然后在再对数组的左右两部分各自再进行
2021-02-24 23:12:18 246
原创 LeetCode 375 猜数字大小 II
猜数字大小II1. 题目我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字。每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了。然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。直到你猜到我选的数字,你才算赢得了这个游戏。示例:n = 10, 我选择了8.第一轮: 你猜我选择的数字是5,我会告诉你,我的数字更大一些,然后你需要支付5块。第二轮: 你猜是7,我告诉你,我的数字更大一些,你支付7块。第三轮: 你猜是9,.
2020-08-30 00:12:14 179
原创 剑指 Offer 46. 把数字翻译成字符串
剑指 Offer 46. 把数字翻译成字符串1. 题目leetcode上的题目给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”2. 分析这一题是一个数字序列的
2020-08-23 10:13:45 184
原创 LeetCode面试题 08.11. 硬币
1.题目硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)。示例1:输入: n = 5输出:2解释: 有两种方式可以凑成总金额:5=55=1+1+1+1+1示例2:输入: n = 10输出:4解释: 有四种方式可以凑成总金额:10=1010=5+510=5+1+1+1+1+110=1+1+1+1+1+1+1+1+1+12. 分析这题写成数学的形式为:现有方程n=25×a+1
2020-08-21 08:36:26 319
原创 《剑指offer》面试题47:礼物的最大价值
礼物的最大价值1. 题目在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物2. 分析这道题目来看,相当于最长路径,移动的方向只能够是向下和向
2020-08-19 12:46:04 270
原创 《剑指offer》面试题42:连续子数组的最大和 动态规划专辑
1. 题目输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。2. 分析...
2020-08-18 23:28:05 217
原创 《剑指offer》第14题:剪绳子与动态规划
剪绳子题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。分析数学上,我们可以把这个问题建模为一个问题,其应该满足以下条件:将长为n绳子划分为a段n=∑i=0nai n = \sum_{i=0}^na_in=i=0∑nai
2020-08-17 21:44:50 142
原创 《剑指Offer》—— 第10题:斐波那契数列
斐波那契数列与剪绳子题目来源于《剑指Offer》的第10,14题,都可以用动态规划的思路来解决问题。斐波那契数列斐波那契数列是数学中非常有名的数列,在中国也可以叫杨辉三角。其递推公式简单明了:f(n)=f(n−1)+f(n−2)(n>1且n∈N+)f(n) = f(n-1) + f(n-2) (n>1且 n\in N^+) f(n)=f(n−1)+f(n−2)(n>1且n∈N+)f(n)={0n=01n=1f(n−1)+f(n−2)n>1且n∈N+f(n)= \l
2020-08-17 20:20:57 133
原创 《剑指Offer》题目分类总结目录
最近在科研闲暇时间把《剑指Offer》刷了一遍,这里把所有题目按照内容专题进行汇总,方便以后总结和整理方法和思路。分类不是固定的,可能会随着题目的理解不断修改,争取把有一些难度的题目全部进行博文整理。1.数据结构1.1 树与二叉树面试题7:重建二叉树面试题8:二叉树的下一个节点面试题26:树的子结构面试题27:二叉树的镜像面试题28:对称的二叉树面试题29:顺时针打印矩阵面试题32:从上到下打印二叉树面试题33:二叉搜索树的后序遍历序列面试题34:二叉树中和为某一值的路径面试题36
2020-08-10 12:27:57 1117
原创 TensorFlow1.x的基本概念
TensorFlow1.x的基本概念1. 计算图TensorFlow 是一个通过计算图 的形式来表述计算的编程系统 。TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。几个基本的概念Tensor张量:即一些数组(高维)Flow:流相关代码import tensorflow as tfg1 = tf.Graph() # 计算图1with g1.as_default(): v = tf.get_variable('v', initi
2020-05-23 20:39:06 626
原创 《流畅的Python》学习笔记(11):可迭代的对象、迭代器和生成器
在Python中,使用频次最高,最实用的一个特性就是迭代的特性,尤其是在for循环,读写文本中大有用处,这次我们来仔细分析Python中的迭代。
2020-02-17 17:36:26 167
原创 《流畅的Python》学习笔记(9)—— Python风格的对象
本节主要对应《流畅的Python》9、10两章,主题是如何利用Python类中内置的协议写一个向量类。
2020-02-14 17:55:11 149
原创 《流畅的Python》(8)—— 对象引用、可变性和垃圾回收
本小节主要讲解了Python中的对象和对象名称之间的关系,以及Python对象的复制、垃圾回收等问题
2020-02-07 00:40:51 116
原创 《流畅的Python》学习笔记(7)—— 装饰器
《流畅的Python》(7)—— 装饰器Python装饰器是笔者至少学习过三遍知识点,通过《Fluent Python》算是基本上弄清楚装饰器的基础了,写下一些心得体会与思考。包括的内容有:Python如何计算装饰器句法Python如何判断变量是不是局部的闭包存在的原因和工作原理nonlocal解决问题1. 基础知识装饰器是可调用的对象,输入:函数输出:函数1.1句法假...
2020-02-04 21:27:36 186
原创 《流畅的Python》学习笔记(6) —— 一等函数
《流畅的Python》学习笔记(6) —— 一等函数在python中一切都是对象,这一想法可以很好的解释一些在Python中奇怪的问题。1. Python函数是个对象在Python中函数是一等对象,满足四个条件:在运行时创建能赋值给变量或数据结构中的元素能作为参数传递给函数能作为函数的返回结果其中1,2,3,4点可以在装饰器中体现,将在第二部分详细阐述。这里给出一个例子说明这4...
2020-02-04 15:58:03 177
原创 《流畅的Python》学习笔记(5) —— 文本和字节序列
流畅的Python(5) —— 文本和字节序列Python中对字符串的管理有两种方式一种是:字符序列另一种是Unicode,在中文的自然语言处理中,会使用到文本数据,所以需要仔细地研究字符串与文本关系,这也是Python中的一个坑点。下图为Unicode与字节码的关系:1.Unicode(码位) 与bytes(字节序列)Unicode就是我们常说的“字符”,也叫码位,Python中s...
2020-01-29 12:50:44 206
原创 《流畅的Python》学习笔记(4) —— 字典、集合与哈希
《流畅的Python》学习笔记(3) —— 序列的骚操作摘要:字典是Python中编程中最常用到的数据结构之一,由于其方便的接口和检索的高效性,在NLP编程中常常用来构建和存储词表,完成word2int和int2word等的功能。因此,有必要深入的研究一下字典这个结构。1. 字典的构建方法:字典推导和列表推导类似,字典推导的方法格式为:reduced_dict = {key: valu...
2020-01-27 14:00:37 440 1
原创 《流畅的Python》学习笔记(3) —— 序列的骚操作
《流畅的Python》学习笔记(3) —— 序列的骚操作看了《流畅的Python》第二章,总体感觉很杂乱,好像什么技巧都说,尽力整理,如有不对的地方以后在修改。1. 序列的总类在Python中,有许多是序列构成的数据类型,不单是有list类型,只要满足线性表的定义的都是由现成的数据类型可用的。![一个序列的数据类继承了迭代器、容器、大小三个基类的,这是类内共有的一些特征。由于是进阶课...
2020-01-24 16:38:24 232
原创 《流畅的Python》学习笔记(2) —— 数据模型
1. 一致性所谓一致性,我的理解是相类似的东西应该使用相同的方法,例如Python中序列的长度都可以使用len()方法进行处理,字符串的拼接可以使用“+”号来统一实现,这就是一致性的实际案例。那么这种一致性是如何是实现的?2.数据模型数据模型其实是对 Python 框架的描述,它规范了这门语言自身构建模块的接口,这些模块包括但不限于序列、迭代器、函数、类和上下文管理器,可以说是Python的...
2020-01-16 21:15:45 263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人