ACM刷题
爱飞的蚂蚁
分享博客心得
展开
-
刷题笔记day27-回溯算法3
/ used[i-1] == false,说明,不是同一树枝,此时如果candidates[i] == candidates[i-1],我们可以用一个 used 数组,如果used[i] = true,说明在一个同一个树枝上使用了。涉及到是同一层是否重复(就是不同组),还是某一个树枝是否重复(同一组内)。// used[i-1] == true 说明,在同一树枝上使用了。所以这样,就很清晰了。原创 2024-03-05 20:51:45 · 420 阅读 · 0 评论 -
刷题笔记day27-回溯算法2
那么只要 len(path) == k 的时候,判断 n 为0,就可以入切片了。题中说的是,1到9的数,不能有重复。原创 2024-03-01 20:48:11 · 423 阅读 · 0 评论 -
刷题笔记day27-回溯算法1
【代码】刷题笔记day27-回溯算法1。原创 2023-11-20 21:07:28 · 157 阅读 · 0 评论 -
刷题笔记day20-二叉树
【代码】刷题笔记day18-二叉树。原创 2023-11-13 21:48:03 · 111 阅读 · 0 评论 -
刷题笔记day17-二叉树04
重点在如果左右不平衡的情况下,就一直返回-1,其他的情况就正常的计算左右节点高度的最大值 + 1,就是树的高度了。原创 2023-11-11 14:28:30 · 156 阅读 · 0 评论 -
刷题笔记day16-二叉树的深度
【代码】刷题笔记day16-二叉树的深度。原创 2023-11-09 22:14:20 · 214 阅读 · 0 评论 -
刷题笔记day15-二叉树层序遍历
不可以使用 中序遍历,因为左边的调整完后,返回到根节点后,左边的换到右边,这是又开始调整“左边的”了,相当与右边的没动。思路:还是层次遍历,判断每一层 index 是否是最后一个。如果是,则将结果追加到result中。这个题的意思是从底到上进行层次遍历。我就直接将上一题的从上到下的遍历结果,做一次翻转既可。还是层次遍历的思路,计算每一层的平均值。可是使用前序遍历、后序遍历。原创 2023-11-08 21:42:49 · 430 阅读 · 0 评论 -
刷题笔记day14-二叉树01
前序遍历的方式是:根节点、左节点、右节点。原创 2023-11-08 21:41:57 · 172 阅读 · 0 评论 -
刷题笔记day13-栈和队列part03
【代码】刷题笔记day13-栈和队列part03。原创 2023-11-06 21:34:31 · 97 阅读 · 0 评论 -
刷题笔记day11-栈与队列2
因为栈是先进后出,所以,最近的左括号一定在栈顶。如果不是,则就是不匹配了。题目中是连续两个重复字符才删除,那么是多个重复字符如何删除呢?可以增加一个last_char 变量,存放着上一次的结果。这个是典型的使用栈,来进行匹配。原创 2023-11-04 22:14:14 · 259 阅读 · 0 评论 -
刷题笔记day10-栈和队列01
思路就是用一个切片,每次追加在后面,但是取值从最前面取值。原创 2023-11-03 18:56:14 · 151 阅读 · 0 评论 -
刷题笔记day08-字符串01
思路2:使用库文件,进行翻转。目的是为了熟悉库,方便后面工作用。设置好边界条件,然后调用上一题写的双指针交换的函数既可搞定。思路1:使用双指针的方法,前后交换。原创 2023-11-02 22:54:46 · 93 阅读 · 0 评论 -
刷题笔记day07-哈希表part03
【代码】刷题笔记day07-哈希表part03。原创 2023-10-31 22:07:23 · 233 阅读 · 0 评论 -
刷题笔记day06-哈希表
【代码】刷题笔记day06-哈希表。原创 2023-10-30 22:14:40 · 203 阅读 · 0 评论 -
刷题笔记day04-链表
【代码】刷题笔记day04-链表。原创 2023-10-28 22:09:49 · 126 阅读 · 0 评论 -
刷题笔记day03-链表
今天是刷题的第三天,坚持就是胜利203.移除链表元素增加一个头结点,这样可以统一删除操作另外,遇到等于的值,就让 prev 指向 curr.Next ,同时将curr更新指向 prev.Next。/*** Val int* }*/// 思路:增加一个头结点,并且设置一个prev指针,用于删除for curr!= nil {} else {707. 设计链表测试代码,Val intNext *NodeSize intHead *Node// 带有虚拟头节点Val: -1,原创 2023-10-27 23:09:03 · 891 阅读 · 0 评论 -
刷题笔记day02-数组快慢指针
当出现大于 target 的时候,那么就是将慢指针往前移动,如果还大,就在判断子序列的长度和result的大小。// 思路就是,可能有负数的情况,那么平方后的数,一定是首尾之间选择。那么使用双指针的方法就可以实现这个问题。// 那么只需要比较一波,选择最大的既可。原创 2023-10-26 23:27:00 · 205 阅读 · 0 评论 -
刷题笔记day01-数组
主要强调,左闭右闭的情况,就是每次查询都会和 [left, right] 进行比较。所以后面的都是mid-1,mid+1 的情况。思路:直观的想法就是,遇到等于val的时候,之后后面的往前面一个个覆盖,类似于是插入排序。相当于是遇到等于不等与的情况,slow++,然后和fast换。当遇到等于的情况,slow就指向val了,快指针一定指向不是val的元素。// 使用快慢指针的方法,原创 2023-10-25 21:35:35 · 479 阅读 · 0 评论 -
【杭电oj刷题】母牛的故事
1、母牛的故事 原题展示:2、题目讲解:这个题还是递归和找规律的问题,做这种问题,就需要自己手动写一段排列,找其中的规律,无非就是递归问题。找到规律后就可以使用代码来实现这个功能即可。这里面有一个坑,那就是题目说的是第四年年初的母牛会生一头小母牛,其实这头母牛才长了整三年,第n年:n=1n=2n=3n=4n=5n=6n=7n=8n=9fn头牛?f1=1f2=2f3=3f4=4f5=6f6=9f7=13f8=19f9=28手动推导如上:可原创 2021-02-12 17:43:34 · 267 阅读 · 0 评论