自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Promise_Lv_2019的博客

编程学习分享交流~

  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

原创 java 数组和List排序方式汇总

基于Lambda表达式的数组和List排序

2022-05-01 15:45:27 578

原创 java String中单个字符的操作

List<Integer> list = new LinkedList<Integer>(); int a[] = new int[27]; char c[] = s.toCharArray(); for(int i = 0;i<c.length;i++){ a[c[i]-'a']=i; }

2022-05-01 13:16:16 2045

原创 Java比较器的设计采坑点

大纲:如果是基本数值类型的比较时,直接使用java自带的比较器如果一定要自己实现,建议比大小,而非使用差值来判断,有溢出危险如果第一个大于第二个,返回1,表示的是两个数不改变顺序,默认是升序。记得把leetcode的题目截图附上。class Solution { public int findMinArrowShots(int[][] points) { // 根据每个二元数组的第二个位置排序,升序; // 如果后一个的第一位,均小于第一个的第二位,都是

2022-05-01 12:51:20 191

原创 Leetcode刷题学习有用资源收录

文章目录前言CodeTop谷歌大神刷题笔记介绍前言最近想重新刷题,提高自己代码的熟练度,一搜索,发现了好多有用的资源,于是这篇文章作为资源收录,方便以后我自己快速查找。CodeTop这是一个系统整理各家公司不同岗位面试真题的网站介绍, 主站地址点这里。谷歌大神刷题笔记介绍依然是知乎答案, 通过这个介绍,我才发现有那么好用的pdf开源文档。接下来的一个月,我准备先跟着这份文档快速过一遍题目先,避免之前的盲目性。同时,意外收获是,这个知乎答案的作者,在github上放了好多计算机领域的资源,太

2022-04-24 00:23:14 512

原创 安卓简单App开发参考资料暂存

了解基本的程序写法,戳这里各种操作的汇总,看1, 2获取控件戳这里发现上述的文章都是同一个人写的,赞~

2021-02-26 09:07:37 150

原创 Python Pandas dataFrame 常用操作整理

工作后,日常都使用Java, 另外数据分析都用sql就能完成,渐渐的Python好用的pandas越用越少……不过,日常生活中还是有不少需要数据分析的地方,这部分用python是最方便的。前几天在用pandas作数据处理的时候,由于不熟练,严重影响了效率,让我意识到,磨刀不误砍柴工,得好好整理下dataframe的基本操作了。在网上搜了下,发现下面几篇写得挺好的,囊括了常用的操作,先把链接挂这里了。知乎文章csdn本站之后再补上我的归纳。...

2021-02-25 00:24:03 181

原创 Leetcode刷题(32)每日一题:两个数组的交集II

一段时间没有练习代码,真就生疏了。果然代码是要天天练的。今天的题目需要使用字典,不过年代久远,基本的操作又都忘了……业精于勤荒于嬉,果然不是随便说说的。题目350. 两个数组的交集II...

2020-07-13 18:04:32 369

原创 Leetcode刷题(31)二叉树专题(31)二叉树专题:树的后序遍历(递归和迭代)

题目145. 二叉树的后序遍历难度:困难题目分析:如果采用递归的方法,那难度其实等于0。对于后序遍历来说,最难的其实是迭代的方法。因为后序遍历的顺序是 左-右-根,这意味着,找到最左的叶子之后,还要再往右边可能的叶子找,最后才能输出根节点位置的值。2. 解法一:递归# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x#

2020-06-19 17:14:13 251

原创 Leetcode刷题(30)二叉树专题:树的中序遍历(递归和迭代)

题目94.二叉树的中序遍历难度:中等题目分析:二叉树的题目基于递归的解法,跟套模板一样,都不需要怎么思考。重点在于掌握迭代的方法,这样有助于理解遍历的过程。中旬遍历,是 左 - 中 - 右的顺序2.解法一:递归# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None#

2020-06-19 12:48:48 269

原创 Leetcode刷题(28)二叉树专题:树的前序遍历(三种方法:递归、迭代的两种写法)

本篇重要参考资料(点此跳转)。这篇解析,不仅简单介绍了二叉树这种数据结构,还详细罗列了各种不同遍历的方法,对于我使用的教材是个很好的补充。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def

2020-06-18 13:03:00 314

原创 Leetcode刷题(29)二叉树专题:求树的深度(递归、深度优先搜索、宽度优先搜索)

题目104. 二叉树的最大深度难度:简单分析:最简单的方法是使用递归,代码最少,速度也不慢;同时可以单独维持一个栈或是队列,使用深度优先搜索(DFS)或是宽度优先搜索(BFS)来得出答案。不管是使用哪种方法,所有节点都必须被遍历,才能获得答案。解法一:借助队列,宽度优先搜索# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x#

2020-05-24 20:22:03 692

原创 Leetcode刷题(27)动态规划专题(5):区域和检测(使用缓存加快计算速度)

题目303. 区域和检索难度:简单题目分析:解法一:class NumArray: def __init__(self, nums: List[int]): self._nums = list(nums) # 断开二者联系 def sumRange(self, i: int, j: int) -> int: return sum(self._nums[i:j+1])运行结果:解法二:class NumArray: def

2020-05-17 12:35:13 236

原创 暂别物理了,开始新的尝试

昨天完整检查了自己的博士论文,觉得非常不可思议。

2020-05-13 15:37:56 173

原创 Leetcode刷题(25)动态规划专题(3):打家劫舍II (考虑环形排列的房间,拆分求解)

题目213. 打家劫舍II解法:拆分房间为两个链表运行结果:

2020-04-11 19:32:08 352

原创 Leetcode刷题(24)动态规划专题(2):打家劫舍(特殊限制的字符串和)

题目198. 打家劫舍难度:简单题目分析:现在对于动态规划,我开始能依葫芦画瓢写出解答代码,不过这中间的正确性,对于我来说还是有点难度。依据动态规划的解题步骤,我们首先定义 dp 数组的含义。此处定义 dp[i]表示到达位置i, 小偷所能偷到的最大和相应的递推公式:dp[i]=max(dp[i−1],dp[i−2]+nums[i]),dp[i] = max(dp[i-1], dp[...

2020-04-07 12:38:19 181

原创 Leetcode刷题(23)动态规划专题:最大子序和

题目解法一:暴力搜索,超时class Solution: def maxSubArray(self, nums: List[int]) -> int: # 尝试一个个加 if len(nums) == 0: return 0 row = len(nums) mini = 0...

2020-04-07 10:12:42 240

原创 Leetcode刷题(22)动态规划专题:爬楼梯(重新包装的斐波那契数列,动态规划使用三部曲总结)

题目70. 爬楼梯难度:简单题目分析:这道题是动态规划系列的第一个例题,因此,这里总结下使用动态规划的三部曲。1. 定义数组 dp[n] 的含义,这个根据具体题目来赋予含义, 这道题是 台阶 n 拥有多少种走法2. 找出更新数组的递归公式,比如这题是 dp[n]=dp[n−1]+dp[n−2]dp[n] = dp[n-1]+dp[n-2]dp[n]=dp[n−1]+dp[n−2]...

2020-04-03 16:47:49 220

原创 Leetcode 刷题 (21)堆栈的应用:字符串处理技术(分类有序,避免冗余,递归解法,O(n)复杂度)

题目394. 字符串解码难度:中等(这道题花了我好长时间,最后是修修补补才做出来……如果是简单题,我就哭了)题目分析:这道题,由于每次读取一个字符,大部分时候不能马上确定最后的形式,因此,需要借助缓存结构;而由于中括号“[ ]”有嵌套(如“3[a2[c]]”,得先转换成“cc”, 在跟“a”拼接),后读取的要先处理,因此选择栈来辅助存储。于是,剩下的问题便是怎么使用栈来存储数据的问题,应...

2020-04-03 13:27:14 198

原创 Leetcode刷题(20)栈和队列的基本应用:用队列实现栈

题目225. 用队列实现栈难度:简单题目分析: 这题主要考察对于栈和队列性质的理解,他们的本质不同就在于元素进入和弹出的顺序,完全相反。栈是 Last In First Out (LIFO), 队列是 Fisrt In First Out (FIFO), 实现起来有点变扭。解法:class MyStack: from collections import deque ...

2020-04-02 17:10:47 186

原创 Leetcode 刷题 (19):堆栈和队列应用:图像渲染(简单版的数岛屿)

733.图像渲染难度:简单题目分析:这道题是容易版的数岛屿(数岛屿详细解析戳这里传送门)。简单的地方在于,对于岛屿题目,我们是不清楚“1” 会出现在什么地方,所以需要构建一个双层循环,遍历矩阵每一个点;而这道题,直接给了起点,所以我们把周围一片找出来即可。1. 解法一: 递归实现的DFSclass Solution: def floodFill(self, image: Li...

2020-03-31 21:14:10 224

原创 Leetcode刷题(18)栈的应用:钥匙和房间 (深度分析堆栈使用的易错点)

题目841. 钥匙和房间难度:中等题目分析:解法一:我自己想的,兜圈了……class Solution: def canVisitAllRooms(self, rooms: List[List[int]]) -> bool: # 基于栈的探索可以解决,反正就是一个个试 # 建立一个答案数组,没探索的标1, # 等栈探索完,...

2020-03-31 16:14:26 397

原创 Leetcode刷题(17)队列的应用:01矩阵(寻找最短路径问题,BFS应用,动态规划最优解法)

题目542. 01矩阵难度:中等(很高兴,现在leetcode关于栈和队列的中等题,我拿到手,都有思路了,也能做出来,博客没有白总结~)题目分析:从非零的数往四周探索,找到的第一个零,记录下此时的步数,如果是使用广度优先搜索(BFS), 那找到的这个,便是最近的距离;不过缺点也很明显,每一次到一个新的非零的位置,都要重复进行一样的工作,而且麻烦的是,之前的结果,不能被有效利用。下面是我基...

2020-03-30 08:56:46 1055

原创 Leetcode 刷题(16)卡牌分组:朴实的求解方法(Reduce函数使用和基于字典的数字统计)

题目914. 卡牌分组难度:简单(对我来说一点也不……)题目分析:卡牌分组,要求每个组里的数字一样,而且每个组的卡牌数一样多因此,这道题需要预先统计卡片有多少个数字,每个数字有多少张牌再往下推论,可以发现,题目需要找的数字 X 应为每种数字个数的公约数,这样每种数字才有可能根据 X 分成一堆堆。1. 错误解法:这种类型的题,其实就考察一个点,这里是求一堆数字的最大公约数...

2020-03-28 16:15:47 280

原创 Leetcode 刷题 (14) 队列和堆栈应用实例:目标和(吐血整理 01背包问题、动态规划易错点,深度分析)

题目494. 目标和难度: 中等题目分析:这道题第一眼,竟然不知道如何下手……说明我对于BFS和DFS的掌握还不扎实。最后是看了答案才有点明白,这个问题其实就是背包问题的变形……于是,直接的解法是使用递归的方法来实现DFS,或者我们自己维持一个栈来编写非递归的解法;自然,这里也可以使用BFS,因为题目需要我们找出所有解,这两种方法只是前进方向不一样。另外值得一提的是,这个方法也能使用动...

2020-03-27 16:21:40 387

原创 Leetcode刷题(15)堆栈的应用:求每日温度(最快解法)

题目739. 每日温度难度:中等题目分析:用一个列表来保留数据,温度的索引,因为有了索引,我们也能获得温度;建立一个跟温度对应的答案列表栈顶元素跟新元素比较,如果小于,就弹出栈顶元素;此处要持续比较,要确保栈里元素从大到小排列栈顶元素和新元素,两个索引相减,就是对应的天数,填入栈顶元素对应的位置如果小于栈顶元素,就入栈解法一:粗略版,细节没有优化class Solutio...

2020-03-27 10:15:55 158

原创 Leetcode 刷题(13)队列和堆栈应用实例:求岛屿数量(三种解法)

题目200. 岛屿数量难度 : 中等题目分析:对于岛屿的定义是,周围被一圈 “0” 包围,观察例子可以发现,在扫描矩阵的时候,只要发现一个“1”, 就能确定找到一个岛屿。这道题的关键在于,如何把找到的“1”周围相连的“1”都找出来,并进行标记,从而跟另外可能存在的岛屿分开。 基于一个已有的点,向四周搜索的过程,固定有两种策略,一个是深度优先搜索(DFS), 一个是广度优先搜索 (BFS...

2020-03-21 19:52:59 293

原创 Leetcode 刷题(12)队列应用:广度优先搜索求完全平方数

题目63. 完全平方数难度:中等题目分析:找一个和的可能拆分,在不清楚数学解析解的时候,就是一个状态空间搜索的问题。对于搜索问题,有两种策略。一种是广度优先搜索,即BFS;另一种是深度优先搜索,即DFS。这里答案是需要我们找到个数最少的拆分,所以,用广度优先搜索是最合适的策略。使用深度优先搜索,只能是找到所有解后,从中确定最优解。这道题不要求我们写出拆分方式,只要个数,所以,最合适的是B...

2020-03-18 21:53:25 145

原创 Leetcode 刷题 (11) 队列:设计循环队列

题目:622. 设计循环队列难度: 中等题目分析: 看下面代码实现。参考的是裘宗燕的《数据结构与算法:Python语言描述》。此处不建议使用python内置的list的append, pop操作,使用了就违背设计循环队列的初衷:消除代价为O(n)的出队操作。解法:class MyCircularQueue: def __init__(self, k: int): ...

2020-03-10 15:20:49 295

原创 Leetcode 刷题 (9)简单单链表:奇偶链表

题目328. 奇偶链表难度: 中等题目分析: 使用原地算法,也就是不使用额外的储存空间,仅借助于额外的指针,同时遍历有限次链表完成。解答:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.ne...

2020-03-08 16:28:35 281

原创 Leetcode 刷题(8)简单单链表: 删除链表倒数第N个元素

题目19. 删除链表的倒数第N个节点难度: 中等题目分析: 链表中的题目,指针相当于免费资源,可以根据需要增加。双指针法、快慢指针法在环形链表,应用很多。解法一:# 对于这种题目,循环结束条件设为快指针到达最后一个元素即可,然后倒数第几个元素,就让慢指针慢几步就好。 # 增加头部,是为了统一删除元素的代码 temp_head = Lis...

2020-03-08 12:33:36 322

原创 Leetcode 刷题(7)简单单链表:确认相交链表

题目:160. 相交链表难度:简单题目分析:如果没有存储空间限制,可以把其中一个链表存到集合 set() 里面,然后再遍历另一个链表,看是否有节点在集合里面。巧妙点的方法是使用两个指针。 如果两个链表有相交,那么后面的整个部分,长度是相同的,所以,如果能消除不相交的部分的长度差,那它们之后肯定可以同时到相交点。方法很简单,每个指针都走一遍两个链表!方法一:使用额外空间# De...

2020-03-08 00:31:37 151

原创 深度学习笔记(3)基于Tensorflow的多元线性回归:预测波士顿房价

问题描述

2020-03-07 21:53:50 1016 1

原创 Python科学计算学习:从入门到放弃系列(5)numpy

摘要第一遍看下来,很多操作,不容易记住,于是,最好的方法,是写博客,记录下来。

2020-03-07 14:30:34 172

原创 Leetcode 刷题(6)简单单链表:找环形列表入口

题目142. 环形列表II难度: 中等题目分析:使用额外空间,是最简单的方法,联系上一篇博客判读环形列表 使用额外空间的分析,在确认了有环的同时,第一个重复点,就是环的入口。这道题同时有个非平凡的解法,基于使用快慢指针的解法,然后多定义两个指针,即能找到入口。详细的图解和分析点这里解法一: 使用额外空间# Definition for singly-linked list....

2020-03-03 20:18:51 215

原创 Leetcode 刷题(5)简单单链表:反转链表

题目Leetcode 206: 反转链表难度: 简单题目分析:这道题能充分体现链表相对list的优势,把链表反转,只需要调整链表指向,而不需要移动元素。建立一个新链表,每次从旧链表拿下一个元素,插入新链表的头,这个操作的代价均是O(1), 效率高解法一:建新表# Definition for singly-linked list.# class ListNode:# d...

2020-03-03 19:47:05 185

原创 Leetcode刷题(4)简单单链表:判断链表是否有环

题目Leetcode 141. 环形链表难度: 简单题目分析: 两种解法。一种是使用快慢指针的方法,快指针移动速度是慢指针的两倍,这样,如果链表有环,快指针一定会从后赶上慢指针。这种解法空间复杂度是O(1), 时间复杂度是 O(n)。一种是借助python内置集合类型 set() 进行节点存储,发现了两个一模一样的节点,就能说明链表有环,同时,第一个重复的节点,也是这个环的入口。...

2020-03-03 18:37:29 282

原创 Leetcode 刷题(2)简单单链表:删除重复元素

链表删除元素后,注意不需要再调用 p = p.next, 因为 p.next = p.next.next, 已经更好了p.next了!

2020-02-28 22:25:42 189

原创 Python 编程技术学习(1)函数装饰器

摘要类似于C# 里面的委托扩展已有函数的功能例子,在微信中扩展函数使用

2020-02-28 21:44:26 222

原创 Leetcode 刷题(3)简单单链表:定义一个单链表数据结构

题目解答class LNode(): def __init__(self, val, _next = None): self.val = val self.next = _nextclass MyLinkedList: def __init__(self): """ Initiali...

2020-02-28 19:09:21 492

原创 深度学习笔记(2) 基于Tensorflow的线性回归 拟合散点图

前言B站作为新兴的学习平台,果然名不虚传,在上面搜索到了浙江大学城市学院的深度学习教程,特别好上手,于是,短短的几个小视频后, 让我对 Tensorflow 很快就有大概的了解,也能马上码代码上手。...

2020-02-28 18:32:17 1215

MNIST手写识别进阶:更多层网络和格式化结构.ipynb

这个代码, 跟B站深度学习教学视频同步。基于Tensorflow 1.13.1, 使用内置的MNIST手写数字集,进行双层神经网络的训练。训练使用了格式化代码,在此基础上,可以轻松增加模型的层数。

2020-03-07

多变量线性回归:预测波士顿的房价.ipynb

代码文件与B站上的视频教程同步,记录完整的模型分析建模过程,还有注意事项,包括我自己走的弯路,代码内容与接下来我要发布的博客同步。

2020-02-29

线性回归练习.ipynb

这个Jupyter notebook文件包含完整的基于tensorflow进行线性回归的示范, 每个操作都有具体的注释说明,跟B站的视频资源对应。

2020-02-28

空空如也

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

TA关注的人

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