- 博客(31)
- 资源 (3)
- 收藏
- 关注
原创 LeetCode算法题总结篇-动态规划
1. 最长上升子序列Leetcode-300-mid-最长上升子序列数组存储信息含义:arr[i] 存储以第i个数字结尾的最长上升序列的长度f(i)。转移关系使用递推的思考还是归纳式的思考比较好?若序列sss以第k+1个数字结尾的话,目前已有arr[0]、arr[1]、…、arr[k];arr[k+1]的计算:将nums[k+1]放在以nums[j]结尾的最长上升序列后,其中需要满足(j≤k且nums[j]≤nums[k+1]j\leq k 且 nums[j] \leq nums[k+1]j≤
2021-09-22 11:56:31
271
原创 sys.path 与 os.getcwd区分:代码运行中的路径问题
python 代码运行路径问题在下载使用别人的代码进行运行时,有时会遇到路径问题。将自己目前遇到的进行分类和总结。主要分为两类: import相关 open文件相关 问题的来源是:IDE和cmd的默认工作路径的差异,或模块搜索路径不同。(即可能是自己和对方使用的IDE的不同默认工作路径导致的。)当前工作目录文件读写等相关操作使用的基本路径。通过函数os.getcwd()获得通过函数os.chcwd()改变os.path功能:作为对路径进...
2021-06-13 17:31:16
579
2
原创 LeetCode算法题总结篇-二分查找
motivation写之前的碎碎念,不知不觉已经拿到了Leetcode的3月份刷题打卡徽章(实际上最后几天就已经在注意了哈哈哈)。同时LeetCode刷题系列已经很久没有更新,加上最近看到的一个面试题目,是属于二分查找的思想在做,但是我们平时使用二分查找时却大多数只用在有序数组中特定元素的查找、有序数组等于特定元素的最小索引、或者是有序数组中满足条件的最小值。看起来是比较局限,可能是前人已经把问题精简到对一个有序数组进行查找这样的地步,但是在一些问题中,可能并没有直接给出这样的有序数组,而是暗含在某种计
2021-04-01 17:06:10
310
原创 LeetCode-103-mid-二叉树的锯齿形层序遍历(dfs:深度优先搜索、搜索模板)
关键词:“深度优先搜索”、“搜索模板”文章目录题目描述分析解题思路搜索模板算法数据结构复杂度分析代码实现相关问题题目描述LeetCode-103-mid-二叉树的锯齿形层序遍历分析对于层序遍历,不能够使用递归的方式,一般直接进行搜索。类似题目:二叉树的层序遍历,使用队列存储每层要访问的对象。本题在此之上要求相邻两层的遍历方向相反。对于第iii层的最后一个遍历的元素,其子节点优先被遍历,是和栈后进先出的特点相符合的。解题思路使用栈来存储每层待访问的节点指针。搜索具有很明确的代码模板。搜索
2020-12-22 11:33:36
134
原创 LeetCode-316-mid-去除重复数字(单调栈)
关键字:“单调栈”文章目录题目描述分析解题思路算法数据结构复杂度分析代码实现相关问题题目描述给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)LeetCode-316-mid-去除重复字母分析题目要求:去重且每个字母出现一次:则返回结果的长度固定返回结果的排列保持原有相对位置返回结果的字典序最小设s中每个字母出现次数为[ca,cb,...,cz][c_a, c_b,..., c_z][ca,cb
2020-12-20 22:30:20
261
原创 LeetCode-714-mid-买卖股票的最佳时机含手续费(动态规划、详细分析与理解、同系列题目汇总)
关键词:“动态规划”、“买卖股票”文章目录题目描述分析解题思路(动态规划)存储含义转移关系初始状态算法数据结构复杂度分析代码实现相关问题题目描述买卖股票的最佳时机含手续费这道题,有想到动态规划来做,但是没有想到合适的数组存储意义。看了几个对应题解,都是以对应时间点的利润作为含义。读了好几个,才明白其中含义。相比较之下,个人认为,以当前账户余额最为贴切。(利润是一个两个状态的资产的差值的描述,且当用户拥有某个股票时,这股权也是用户资产的一部分,而前者使用利润来描述时是忽略了这样的含义)分析根据题目
2020-12-17 17:22:13
154
原创 深度学习入门PyTorch-阅读笔记1-PyTorch基础
【Abstract】本文对该书的第三章第一节进行概括,本章主要描述PyTorch的基础知识。首先是PyTorch的存储结构Tensor;其次描述了三个重要部分:数据读取与处理、网络模型构建、优化策略;最后介绍模型的存储和读取。文章目录1. Tensor(张量)Tensor与numpy类型:Tensor初始化与访问类型转换判断电脑是否支持GPU加速将tensor在CPU与GPU之间互转2. Variable(变量)3. Dataset(数据集)继承定义数据集类对数据集的乱序批量迭代对图片类数据4. nn.M
2020-12-15 22:10:46
551
1
原创 LeetCode-49-字母异位词分组(详细分析、计数、排序)
关键字:“字母异位词”、“特征”、“分析”题目描述字母异位词分组分析对于这道题目主要有两个问题需要解决:如何判断两个字符串时字母异位词如何将相同的字母异位词放入同一个数组中对于问题1:判定方式1:对于两个字符串,排序后的结果如果是相同的两个字符串,则为字母异位词判定方式2:由于题目说明所有输入均为小写字母,可以用长度为26的数组来计数各个字母出现的次数。对于两个字符串,如果对应的计数数组的各个位置均相同,则这两个字符串为字母异位词方式1中排序后的数组或方式2中计数数组,抽象为特征,每
2020-12-15 14:26:20
650
4
原创 LeetCode-376-mid-摆动序列(贪心、动态规划、具体分析)
关键字: 贪心、动态规划、具体分析题目描述在一个数组中选出相对大小交替的最长子序列。LeetCode-376-mid-摆动序列分析摆动序列:对于非边界点,是峰顶arr[i−1]<arr[i]>arr[i+1]arr[i-1] < arr[i] > arr[i+1]arr[i−1]<arr[i]>arr[i+1]或谷底arr[i−1]>arr[i]<arr[i+1]arr[i-1] > arr[i] < arr[i+1]arr[i−1]&
2020-12-12 17:02:43
182
原创 LeetCode-649-mid-Dota2 参议院(贪心,模拟,详细解题思路与分析)
关键字:“贪心”、“队列模拟”文章目录题目描述分析解题思路算法数据结构代码实现相关问题题目描述详情见:LeetCode-Dota2参议院分析对于一名参议员来说,当投票时,要禁止对方参议员的权力。当一方参议员全部被禁止后,另一方获胜。要模拟这个投票过程,问题在于每个参议员如何选择其要禁止的敌对方参议员。那么,如何选择呢?贪心:选择在自己投票后首先会进行投票的对方参议员。如何证明这一点呢?这里先给出几个例子,直观的认识到顺序的重要性。再对该贪心策略的正确性进行直观分析、理论证明。几个
2020-12-11 23:59:18
491
原创 LeetCode-860-easy-柠檬水找零(贪心,模拟)
关键字模拟求解,贪心题目描述在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。分析题目描述为按照顺序进行找零,进行模拟,只用维护每次
2020-12-10 11:25:04
430
原创 leetcode#62-mid-不同路径(含分析与类似题目比较)(动态规划经典例子)
题目描述一个机器人位于一个 m x n 网格的左上角 。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?分析问题等价于在笛卡尔坐标系下,从(m,n)到(1,1)进行移动操作,其中移动操作只为左移一格或下移一格。从(m,n)到(1,1)的移动:在(m,n)处只能移动到(m-1,n)或(m,n-1);设f(m,n)f(m,n)f(m,n)表示从(m,n)移动到(1,1)所有的路径数目,其中m≥1,n≥1m \geq 1, n \geq 1m≥1,
2020-12-09 13:46:04
228
2
原创 leetcode#861-mid-翻转矩阵后的得分
问题描述有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]0b1111 + 0b1001 + 0b1111 =
2020-12-07 15:49:07
94
原创 Exercise: scikit-learn
Exercise:step1: sklearn自带生成数据集的函数from sklearn.datasets import make_classificationdatas = make_classification( n_samples = 1000, n_features=10 , )step2: cross-validation:交叉验证,将数据集分为两部分:训练集和评估集fr...
2018-06-19 09:38:34
235
原创 Leetcode#34 Search for a Range
题目描述:Given an array of integers nums sorted in ascending order, find the starting and ending position of a given target value.Your algorithm's runtime complexity must be in the order of O(lo...
2018-06-12 18:19:19
168
4
原创 Exercise:Pandas and Statsmodels
Part 1For each of the four datasets...Compute the mean and variance of both x and yCompute the correlation coefficient between x and yCompute the linear regression line: y=β0+β1x+ϵy=β0+β1x+ϵ (hint: us...
2018-06-12 16:48:52
202
原创 Exercise: scipy
练习题目与相应代码如下:分析:使用最小二乘法:求出各个列向量线性组合后与b距离最小的线性组合#10.1import numpy as npimport scipy.optimize as opt#m > nm = 20 n = 10A = np.random.normal( loc = 10, scale = 3 , size = (m,n) ) #normalb = np...
2018-06-06 14:26:31
416
原创 Exercise:Matplotlib入门
目的: 练习使用Matplotlib进行函数图像的绘制等数据处理任务。题目: 一:实现函数图像的绘制 import numpy as npimport matplotlib.pyplot as plt#import seaborn as snsx = np.linspace (0,2,1000) #interval#make it the functiony = np....
2018-05-26 15:48:05
245
原创 Exercise:学习使用Numpy
本文中涉及了矩阵的加、减、乘、转置等操作。主要是使用矩阵类的内置属性和方法以及numpy提供的方法来进行相关的操作:有需要的读者可以根据个人需要对照下方题目表涉及的方法进行查阅。前置生成相关矩阵import numpy as npfrom scipy.linalg import toeplitzn = 5m = 5A = np.random.randn(n,m)print( A )...
2018-05-19 18:11:20
192
原创 LeetCode #55jump game
'''#55jump gamesGiven an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Det...
2018-04-30 10:05:03
150
原创 LeetCode #46Trapping Rain Water
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.所能组成的用来积水的块,每一块需要两个板作为边界。当计算两个板之间的积水'面积'时,需要去除山的面积...
2018-04-28 08:51:14
127
原创 LeetCode 11. Container With Most Water
题目要求:Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find...
2018-04-24 14:34:10
109
原创 python编程从入门到实践第十章习题答案
#10-1 文件读取并输出到屏幕with open("learning_python.txt" , "r" ) as file: contents = file.read() print( contents ) print( "********************") for ele in contents: prin...
2018-04-05 10:02:33
551
原创 python编程从入门到实践第九章习题答案
#9-1class Restaurant() : def __init__( self , _name , _type ): self.restaurant_name = _name self.cuisine_type = _type def describe_restaurant( self ): print("The name...
2018-04-05 09:00:41
418
原创 python编程从入门到实践第八章习题答案
#8-2 喜欢的图书def favorite_book( book ) : print( "One of my favorite books is " , book )name = input( )favorite_book( name )#8-3 T恤def make_shirt( size , text ): print( "The size is :",size...
2018-04-01 19:43:17
752
原创 python编程从入门到实践第七章习题答案
#7-1 输入输出message = input( "What car do you want?")print( "Let me see if i can find you a ", message)#7-2 判断是否有空桌number = input( "How many people are having the dinner?")number = int( number)if numb...
2018-03-29 21:06:25
880
原创 python编程从入门到实践第六章习题答案
#6.1 人people = { "first_name" : 'zetrue' , "last_name": 'Lee' , "age": 20 , "city" : "汕尾" }print( people)for key in people.keys() : print( key , " : " , people[key] )#6.2 喜欢的数字favorite_val
2018-03-21 21:57:46
1088
原创 python编程从入门到实践第五章习题答案
#5.2cars = [ 'bwm' , 'audi' , 'subaru' ]a_str = 'BWM'print( a_str == cars[0] )print( a_str.lower() == cars[0] )print( a_str.lower() in cars )print( a_str.lower() not in cars )#5.3-5.5#5.3alien_...
2018-03-20 21:42:51
358
原创 python编程从入门到实践第四章习题答案
4.1pizza = ['a' , 'b' , 'c' ]for ele in pizza : print( ele + " . I like pepperoni pizza." )print( "They are delicious, I like them" )4.2animals = ['dog' , 'cat' , 'bird' ]for ele in animals : ...
2018-03-15 08:58:48
682
原创 python编程从入门到实践第三章习题答案
3.1-3.2names = ['zhichao' , 'yujie' , 'yifei']for name in names: print( name.title() + " , good night.")3.3transportation = ['car' , 'walk', 'bicycle' , 'motorcycle']for elem in transportatio...
2018-03-12 23:27:03
2195
原创 python编程从入门到实践第二章习题答案
请对照相关书籍进行阅读2.1-2.2message = "Hello Python!"print( message )message = "Hello Zhichao"print ( message ) 2.3message = "ada"print( "Hello " + message + ",would you like to learn some Python today?" ...
2018-03-07 23:24:42
796
图论及其算法
2018-04-27
辛星pygame教程
2018-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人