- 博客(19)
- 收藏
- 关注
原创 Leetcode刷题日记-No394字符串解码
核心逻辑是构造两个栈(数字栈+字母栈),从左到右遍历字符串,遇到数字压入数字栈,遇到括号数字栈弹出,并将括号压入字母栈,遇到另一个匹配的括号时弹出所有字母和括号,并结合数字决定重复次数输出。总体感受,这种中等难度的题目想要一时半会解出来还是比较难的(至少对于我来讲),可以结合一些题解来思考,但是最关键的还是要自己静下来一步一步思考,甚至在本地一步一步debug。但是实际在写代码时候也遇到很多问题,有些细节条件还是没有考虑的太周到,最后还是在本异一点一点debug出来了,花了多半天的时间。
2022-11-11 17:36:28 292
原创 Leetcode刷题日记-No234回文链表
思路一:遍历两次,第一次依次取出所有节点并存放在数组arr中,第二次,链表向前遍历,数组向后遍历,比较每个元素是否相等,如果都相等则为回文链表。思路二:不引入额外空间复杂度,将链表分为两部分,第二部分反转,再依次比较。时间复杂度O(n),空间复杂度O(1)。时间复杂度O(n),空间复杂度O(n)。
2022-11-07 19:28:10 248
原创 Leetcode刷题日记-No206反转链表
思路:引入三个指针,pre、cur和next,pre初始化为null,cur初始化为head。直到cur为null,此时pre节点就是链表反转后的头节点。
2022-11-07 19:26:44 242
原创 Leetcode刷题日记-No160相交链表
思路一:辅助空间法。引入一个HashMap,遍历其中一个链表的所有节点,并将节点本身作为key存入HashMap。再遍历另一个链表的所有节点,如果节点已经在HashMap中存在,说明有相交,返回该节点;这里主要考虑的问题是A和B链表长度是不一样的,在遍历的时候,如果A到头了,就重新从headB开始;如果B到头了,就重新从headA开始,直到两个节点相等,此时如果是Null就说明不想交,否则说明相交。时间复杂度:O(m+n)空间复杂度:O(m+n)时间复杂度:O(m+n)空间复杂度:O(1)
2022-11-07 19:24:56 257
原创 Leetcode刷题日记-No141环形链表
思路:判断链表是否有环经典解法-快慢指针。初始化指针fast和slow均指向链表头结点head,接下来fast每次前进两步,slow每次前进一步。然后接两句话:无环链表必有头,有环链表追得上。
2022-11-07 19:22:44 139
原创 Leetcode刷题日记-No83删除排序链表中的重复元素
思路:原始链表有序,只需要遍历所有的节点,如果当前节点和下个节点是重复的,直接让当前节点指向下下个节点;否则节点移动一个节点继续遍历。
2022-11-07 19:21:21 130
原创 Leetcode刷题日记-No21合并两个有序链表
链表的问题很多都是用递归方式去解决的,递归法代码比较简洁。这里的思路是:创建一个结果链表节点对象,判断list1和list2的头结点大小,取小的作为结果链表的头结点。接着递归查找下一个节点,直到有一个节点为null。思路二:双指针迭代。所有的递归都能改写成迭代的形式,这里参考合并有序数组的方法,采用两个指针分别指向list1和list2的头结点,并依次传递链表,直到其中一个为null。
2022-11-07 19:19:36 215
原创 Leetcode刷题日记-No448找到所有数组中消失的数字
思路一:引入Hashmap,遍历数组,将元素存入Hashmap,接下来遍历[1,n],找出不存在于Hashmap的元素,追加到结果数组中。代码如下
2022-11-04 10:53:38 166
原创 Pyinstaller打包.py文件心路历程
最近在用PyQt写一个界面程序,需要把.py文件打包成.exe文件,这样在没有Python环境的电脑上也能正常使用,很方便。网上99%的人都建议用pyinstaller进行打包,这里面也遇到了很多问题,先记录一下。1.首先是环境:操作系统:64位win10,python版本:3.6.4,PyQt版本:5.6.2(以上均为anaconda5.1.0自带),程序中使用了Python机器学习与科学计算第...
2018-03-29 10:52:17 9642 2
原创 当当网畅销书排行爬虫(requests+BeautifulSoup)
今天要做的是一个爬取当当网畅销书排行的爬虫,之后想看排行直接运行程序就可以看到啦,没有多余的信息,是不是很给力!在前两次的爬虫编写过程中,思想都是把整个HTML文档看做一个很长很长的字符串,通过编写特定的正则表达式匹配我们需要的内容。这对于一般的内容不多的爬取需求是可以满足,但是一旦我们需要爬取的内容多了起来,正则表达式的模式就会变得相当复杂,可读性也不够好。那么有没有另外一种方法呢?答案是肯
2017-07-14 11:35:32 3242
原创 爬取豆瓣影评TOP250Demo
在爬取了糗事百科的段子之后,我发现还挺好玩的。接着想还有什么是好玩的呢?因为平时也喜欢看电影,就进入豆瓣电影的官网,看到豆瓣电影TOP250的页面。哎,把这个榜单爬下来应该挺好玩的吧。话不多说,马上行动。这里用的还是最基础的urllib库和re库,通过正则表达式匹配需要的内容,当然,之后还会有更加高级的方法,但是多写简单的可以提高对原理的认识。简单总结一下python爬虫爬取简单静态网页的一般
2017-07-13 13:42:51 1012
原创 爬取糗事百科的段子Demo
1.我们要做什么?爬取糗事百科的段子,并打印输出在屏幕上。2.怎么做?(1)获取网页的内容:目的网址为https://www.qiushibaike.com/text/,该网址为糗事百科文本段子的部分。右键点击查看源代码,截图为:获取网页内容的代码如下:url = 'https://www.qiushibaike.com/text/'user_agent = 'Moz
2017-07-11 00:07:40 572
原创 Python爬虫学习笔记之基础知识
1.什么是爬虫?网络爬虫是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。2.使用urllib爬取网页内容
2017-07-10 22:41:02 333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人