自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 python split(‘ ‘) 与 split()

split(’ ')遇到单词间隔为两个空格时,会将其中一个空格作为一个元素,而split()则不会apple 和 coconut间隔两个空格

2021-03-10 10:48:51 90

原创 python list[:] 与 list

结果:在res.append后修改 l 会影响res的内容。而l[:]则是将值传入,在append后修改l 不影响res。

2021-03-09 23:33:37 159

原创 Python身份运算符

a = 10b = 10c = [1,2,3]d = [1,2,3]print(a is b)print(c is d)output:TrueFalse产生上面情况的原因是python中数据分为可变(mutable)和不可变(immutable)。不可变类型有数字、字符串、元组;可变类型有列表、字典。对不可变类型的变量重新赋值,是重新分配一块新的内存存新的值,将变量指向新的内存。而为了节约内存,解释器会重复利用常见的不可变类型数据。...

2021-01-05 15:09:19 110

原创 二叉树中找到两结点的共同祖先(递归)

从根节点往左右子树遍历过程中,对于一个结点的情况如下(两结点存在的情况下):1、两结点全在右子树2、两结点全在左子树3、当前结点就是两结点之一,此时这个结点即最近共同祖先4、一个在左、一个在右。此时这个结点即最近共同祖先在其他情况出现前,3、4两种情况已经出现,即已经找到了。可以考虑递归://res存放结果bool findanc(BitTree bt,BitTree p, BitTree q, BitTree &res) { if(bt){ if( bt == p &

2020-09-25 20:04:24 2225 1

原创 prim算法、kruskal算法和dijkstra算法

prim算法prim算法用于寻找图中的最小生成树,总体思路如下:开始时,从图中任取一个节点作为初始点,另作一“距离表”存放其他所有节点到已访问节点的直接距离,初始值即为到初始点的距离。接着找出距离已访问节点集最近的节点,加入已访问节点。此时要用新节点和其他节点的距离来更新“距离表”中已访问节点集和各未访问节点的距离。重复2中操作直到已访问节点集中的节点数量时全部为止。void prim(const vector<vector<int>>& path, vect

2020-07-15 21:47:56 899

原创 利用栈的四则运算

利用表达式求值首先要会将中缀表达式变为后缀表达式,过程如下:中缀表达式:(A+B)*C-D/E = ( ( (A+B)C ) - (D/E) ),将标点符号移到对应括号的后面。后缀表达式:AB+CDE/-。将表达式转化为后缀后能方便利用栈进行计算。利用栈来化为后缀表达式的步骤如下:从左往右扫描中缀表达式。当读到数字时,加入后缀表达式。读到操作符时,将其与操作符栈顶进行比较,如果当前符号优先级高或为栈空,就压入栈。否则,一个个往外pop到后缀表达式中,直到当前操作符的优先级比栈顶的高,才将其push

2020-06-27 20:16:02 1118

原创 1074 Reversing Linked List | PAT

今天发现自己有点疑似颈椎病症状,555芳年二十就这样了,不引起重视老了还了得?不知道要家里呆到啥时候还是看题目题目要求输入一个静态链表,再根据给出的跨度ng,每个跨度ng内都倒置,最后多余的不用倒置,并且只要输出就行。思路是这样:定义结构体。内有地址adress,数据data,下一个的地址next,在链表中的次序order,初始化为maxn。这个结构体数组的下标可以作为地址,为什么还...

2020-02-15 23:29:55 75

原创 二分思想小剖析

这一个月努力冲一冲,三月份的甲级能考掉就考掉了。今天看算法笔记看到了二分,想着二分还不简单。看了看发现并不是????算法笔记中有一句加粗的话是我以前在二分中从没听过的,大部分二分问题可以归结为:寻找有序序列中第一个满足某条件的元素的位置。 这句话一开始听得不明所以,仔细一想别有洞天。比如下面的木棒切割问题:#include<iostream>using namespace std;...

2020-02-01 17:39:12 97

原创 由A1067来的小发现

题目如上图,题中有交换的操作。如上图给的三个交换例子,是将数字0,1的位置交换。也就是知道要交换的两个数字,但不知道其位置。如果将数组下标看作位置,则需要遍历数组找到内容为0,1 的数组元素再交换,这道题中如此一来会超时。只要将数组下标看作数字,而其中存储的内容看作位置。0,1的交换也就可以直接swap[a[0],a[1]]。重点是将“已知”和“已知”联系起来。如此查找顶呱呱。...

2020-01-31 22:20:23 78

原创 关于char二维数组的小知识

#include<cstring>using namespace std;char week[7][4] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};int main() {// cout << strlen(week[5]); cout << week[0][0]; cout << wee...

2020-01-04 20:50:39 1807

原创 cin.getline()的小细节

今天寝室摸鱼,做题时发现pat里c++的环境用gets会编译不过,于是改成用cin.getline。这是官方对它的描述:istream& getline (char* s, streamsize n, char delim );三个参数分别为存放的char数组指针,get的最大数量和结束标志(可缺省)。重要的是其中第二个参数n只能读入有效的n-1个,其中一个是’\0’。用以下代码验证...

2020-01-02 16:59:25 133

原创 Palindrome(最少添加多少个字符才是回文串)

太蠢了太蠢了,这个问题竟然卡住了。题目的意思就是给出一个字符串,问要补上多少个才能成为回文串。思路非常简单,字符总数减去已有的回文串数量就行了,已有的回文串怎么求呢?将字符颠倒过来成为一个新字符串,然后求新旧两个字符串的LCS即可。于是代码显而易见:#include<iostream>#include<algorithm>#include<cstring...

2019-12-29 14:13:53 601

原创 数列分段(最大值最小)

想到用二分来尝试结果,用贪心来验证有N个数,要分成M段,求最大值最小。显然最大值最小的情况是单个数字中最大的,最大值最大的情况是所有数组的和为最大值。求出最大值的最小和最大可能,对此二分来尝试是否可行。尝试可行的办法尝试一系列数分成最大值的最小为X时至少要分几段。那就用贪心的方法,每段都在不大于最大值的情况下尽可能的大。如此一来,能在分段在小于M个的情况下的最大值的最小值为X,那在分M...

2019-12-27 20:23:23 1200 1

原创 多种全排列问题

ac代码如下#include<bits/stdc++.h>using namespace std;void permute(int arr[],int s,int t){ if(s == t) { for(int i = 1; i <= t; i++) { if(i == t) cout << arr[i] << endl;...

2019-12-25 20:13:52 169

原创 1068. Find More Coins | 01背包

想找点dp的题目做。碰到这道题卡了很久,看柳神的一开始也看得稀里糊涂。后来发现这是1068我点到1048里去了????,题目看过一遍就没再看了,我说咋越看越糊涂????但这道题还是不算简单的,写点东西帮助记忆一下。题目链接题意大概题目大概就是给出n个硬币和其价值,要选出总共为m价值的搭配,并且如果有多种要选最小的那种输出。这和经典的01背包有不少差别:经典01背包分别有价值和重量,约束条件是重量。...

2019-12-11 20:17:06 78

原创 01背包与完全背包

01背包问题:有n件物品和一个容量为m的背包。第i件物品的费用是w[i],价值是v[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大分析:用动态规划,找到状态dp[i][j],表示前 i 个物体 j 个容量下的最大价值。可以得到递推式dp[i][j]=max{dp[i-1][j],dp[i-1][v-w[i]]+v[i]}。用两个for循环从小到大递推,下面...

2019-12-10 19:52:08 62

原创 合并果子 | 数组、贪心

用数组的方法做合并果子问题。一开始一直有问题,后来发现sort函数的结束地址参数给错了,比如有5个数据,第一个起始参数地址是a,那最后一个应该给a+5而不是a+4。 还是要细心一点啊????下面是代码://合并果子 #include<iostream>#include<bits/stdc++.h>using namespace std;int cnt = 0;i...

2019-12-08 19:16:39 216

原创 DFS助记

看到pat里很多题目要用到Dijkstra和DFS结合,想着回顾一下DFS这位讲的挺好:https://blog.csdn.net/weixin_44026819/article/details/86554564例题:https://blog.csdn.net/wonengguwozai/article/details/84634423DFS:一条路走到黑再回头,有结果或者失败返回这个点。...

2019-12-03 15:02:32 89

原创 符号三角形问题

问题描述:如下图是由14个“+”和14个“-”组成的符号三角形, 2个同号下面都是“+”,2个异号下面都是“-”。1 - + + - + + +2 - + - - + +3 - - + - +4 + - - -5 - + +6 - +7 -在一般情况下,符号三角形的第一行有n个符号, 符号三角形问题要求对于给定的n, 计算有多少个...

2019-12-03 14:49:29 2210

原创 线性时间选择

原本想看看动态规划的,翻翻课本看到了一个线性时间选择的问题,之前看懂了又忘了,于是加深加深印象。问题:给定线性序集中n个元素和一个整数k,1<=k<=n,要求找出这n个元素中第k小的元素。将元素每五个分为一组,分别找出中位数,再找到中位数的中位数。基于这个数进行快排。**如此一来,每次都至少能分出1/4左右的元素,避免直接快排产生的最坏情况。**让人不禁感叹这就是大师的智慧。????...

2019-12-01 18:06:39 265

原创 1003 Emergency | 贪心、Dijkstra

这是一个noob的笔记。只是想让自己回头复习的时候方便一些,所以也只是一些能帮助自己回忆的要点,朋友们看起来可能稀里糊涂????。原问题链接:1003 Emergency.问题:有若干城市,城市间有道路连接,道路有距离;城市里有救援队。此时需要从出发点到目的地,求出经过最短路径的数量和最短路径情况下集合的救援队的最大数量。输入:城市的数量、道路的数量、出发点、目的地、各城市的救援队数量、各道路...

2019-11-06 21:18:50 78

原创 Dijkstra算法助记

Dijkstra算法助记这是一个noob的笔记。只是想让自己回头复习的时候方便一些,不敢对各位大哥指教,所以写的也只是一些能帮助自己回忆的要点,如果想要学习的朋友另请高明,看我这的估计得误入歧途????。问题描述:找到图中指定一点到其他点的最短距离。问题解决:通过贪心的思想。可以在二维数组map[][]中存放点到点的初始距离,集合v中放已经找到最短路径的点,集合u中放待寻找最短路径的点。开始...

2019-11-05 16:23:06 142

空空如也

空空如也

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

TA关注的人

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