自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 问答 (3)
  • 收藏
  • 关注

原创 LeetCode 969. Pancake Sorting

Given an arrayA, we can perform apancake flip:We choose some positive integerk<= A.length, then reverse the order of the firstkelements ofA. We want to perform zero or more pancake flips (...

2019-03-20 21:17:55 206

原创 LeetCode 88. Merge Sorted Array

Given two sorted integer arraysnums1andnums2, mergenums2intonums1as one sorted array.Note:The number of elements initialized innums1andnums2aremandnrespectively. You may assume tha...

2019-03-20 20:14:20 143

原创 LeetCode 26. Remove Duplicates from Sorted Array

Given a sorted arraynums, remove the duplicatesin-placesuch that each element appear onlyonceand return the new length.Do not allocate extra space for another array, you must do this bymodifyi...

2019-03-20 19:27:29 147

原创 LeetCode 27. Remove Element

Given an arraynumsand a valueval, remove all instances of that valuein-placeand return the new length.Do not allocate extra space for another array, you must do this bymodifying the input arra...

2019-03-20 19:02:06 97

原创 LeetCode 61. Rotate List

Given a linkedlist, rotate the list to the right bykplaces, wherekis non-negative.Example 1:Input: 1->2->3->4->5->NULL, k = 2Output: 4->5->1->2->3->NULLExplan...

2019-03-19 00:05:03 103

原创 LeetCode 86. Partition List

86.Partition ListMedium578158FavoriteShareGiven a linked list and a valuex, partition it such that all nodes less thanxcome before nodes greater than or equal tox.You should preserve the ...

2019-03-18 23:48:03 115

原创 LeetCode 09 Remove Nth Node From End of List

Given a linked list, remove then-th node from the end of list and return its head.Example:Given linked list: 1-&gt;2-&gt;3-&gt;4-&gt;5, and n = 2.After removing the second node from the end, t...

2019-03-11 18:04:04 121

原创 LeetCode 950 Reveal Cards In Increasing Order 排序的反向推导

In a deck of cards, every card has a unique integer. You can order the deck inany order you want.Initially, all the cards start face down (unrevealed) in one deck.Now, you do the following steps...

2019-03-08 16:37:01 129

原创 LeetCode 832 Flipping an Image 水题

Given a binary matrixA, we want to flip the image horizontally, then invert it, and return the resulting image.To flip an image horizontally means that each row of the image is reversed. For examp...

2019-03-08 15:57:54 192

原创 LeetCode 905 Sort Array By Parity 水题

Given an arrayAof non-negative integers, return an array consisting of all the even elements ofA, followed by all the odd elements ofA.You may return any answer array that satisfies this conditi...

2019-03-08 15:48:23 132

原创 Leetcode 977 Squares of a Sorted Array 水题

Given an array of integersAsorted in non-decreasing order,return an array of the squares of each number,also in sorted non-decreasing order.Example 1:Input: [-4,-1,0,3,10]Output: [0,1,9,1...

2019-03-08 15:38:52 161

原创 关于平衡二叉树的一些个人理解

一、平衡二叉树的定义和概念:平衡二叉树的概念基于先前学习的查找二叉树的概念。之前提到过,由于查找二叉树存在建树或者删除节点顺序的的问题,会导致链式二叉树的存在。这样查找的时间复杂对就会变为O(n)。而为了让时间复杂度仍然保持O(logn)级别,所以加上了平衡的要求,这样的查找二叉树被称为平衡二叉树,英文缩写为AVL树;二、平衡二叉树的数据结构:平衡二叉树附加了一个平衡因子,用于衡量...

2019-02-12 15:08:56 517

原创 PAT A1030 Travel Plan

这道题又很好的复习了迪杰斯特拉的相关算法;这道题很经典,附加了边的权值,和点的权值条件还不一样;还有一点就是路径节点的保留,类似于并查集相关概念,储存在集合里,使用DFS进行从头遍历就行;这里仍然要注意一下DFS的相关判定条件;具体代码如下所示:#include&lt;iostream&gt;#include&lt;stdlib.h&gt;#include&lt;st...

2019-02-06 20:27:13 209

原创 PAT A1003 Emergency

之前遇到过这道题,但是对于他的知识点没有完全掌握,只能完整的写出迪杰斯特拉算法,但是并不能很好的处理附加条件;这里面附加条件主要有两个,一个num路径个数,一个权值总和个数;其实处理的方法和distance数组完全相同,只不过在相同路径判别的时候,在等于情况下进行weight数组的更新,判别方式也和distance数组的判别方式小姑娘同;值得注意的是num数组,当出现重复路径的时候...

2019-02-04 15:46:55 176

原创 PAT A1076 Forwards on Weibo

这道题果然采用了BFS来遍历,没神马太高的难度,注意的点有以下几点:1.输入的节点和之前不同,是b-&gt;a;2.每次迭代之后要注意VIs数组的更新;3.示例采用的方法并不是按层数计数,而是节点内置层数信息,从而化简了层数判断的代码;详细代码如下所示:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt...

2019-02-04 14:41:17 175

原创 PAT 1034 Head of a Gang

这道题本身并没有什么难度,自从接触了Hash之后,也就能想着将字符串转换成Hash来做;本题的要点个人觉得是字符串和Hash值的转换,所以需要Map来进行存储,之前没有用Map写了一百多行,十分繁琐;但是不知道为什么解析每次都选择DFS,个人觉得BFS更加精简易懂。这里样例给出的DFS有两个值得学习的操作:1.利用引用传值而不是利用全局变量,这样省去了很多的初始化和重赋值操作;...

2019-02-03 21:46:55 160

原创 PAT A1091 Acute Stroke

原来读题可以这么费劲。。。感觉读题比做题难;这道题和之前BFS所做的例题基本类似,就是一个利用BFS的遍历问题;同样的,还是要提一下关于坐标数组的问题:如上所示,对于一个点,在三维坐标下,有六个方向,所以组合必须有六个,从上述的数组可以看到,竖着来看,确实是有六个坐标方向,在枚举的时候要同样注意方向问题;详细代码如下:#include&lt;iostream&gt;...

2019-02-03 15:25:56 230

原创 PAT A1103 Integer Factorization

很经典的一道DFS的例题,虽然自己之前做过相关的总结,但是还是不由自主地卡住了。。。。卡住的地方主要在后续的分支判别上:在最后一句,错误的加上了temp.pop_back()。这里需要注意下,如果只有两条路,也就是加和不加,第一条路走不通则必然走第二条路,所以就不需要temp.pop_back();还有就是这道题给出了附加条件:1.最大的数字所组成的和;2.可以重复选址...

2019-02-02 22:42:59 284

原创 关于BFS广度优先搜索的一些个人理解

对于BFS,其实相比之下比DFS更加简单一些。如果说DFS是为了走出一条最深的路径,那么BFS就是更像是为了层层扩张来达到访问所有节点的目的,例如树中的层序遍历,也可以认为是一种BFS;BFS更像是逐层扩散的过程,所以BFS不需要回溯,所以也就不需要递归,更多的实现方式是利用队列,来进行层序输出;之前刷题中,也利用过队列进行过BFS的逐层访问,来记录树的层数,其实现在想想,利用DFS更直观...

2019-02-02 20:15:32 385

原创 关于DFS的一些个人理解

之前用DFS可能最多的就是树类问题,但是随着最近图论的深入,看了看相关的问题,发现问题并不局限于此;由于之前接触过动态规划还有贪心算法,突然发现DFS和动态规划貌似有点类似,之前个人感觉可能不同的点在于两点:1.动态规划有相关的状态转移方程,定下边界之后,就严格的按照状态转移方程来进行解决;2.动态规划具有重叠子问题,进行逐步的计算,用小问题的解解决大问题。但是个人感觉,DFS貌似也有...

2019-02-01 18:12:21 935

原创 PAT A1021 Deepest Root

这道题综合了并查集和遍历的相关考点。对于遍历来说,可以使用DFS和BFS,但是个人觉得BFS更加简单一点,只需要逐层遍历然后记录相应的高度信息就可以,更加简洁,后面会补上DFS的相关做法,目前个人还无法太过清晰了解;#include&lt;iostream&gt;#include&lt;stdlib.h&gt;#include&lt;vector&gt;#include&lt;...

2019-02-01 16:10:07 242

原创 PAT A1013 Battle Over Cities

这道题可以说是很经典的图论问题,个人觉得其主要的考点是连通量的计数问题;对于这道题,起初看到,可能会反应不过来这是连通量计数问题,并且还尝试性的去考虑怎么连接连通分量;这道题其实思路很清晰,自己接触到的有两种方法可以解这个问题:1.使用深度或者广度遍历,确定出不连通的连通分量个数;2.使用并查集,对于连通分量来说,可以确定出一个确切的集合,所以多个连通分量就是有多个并查集集合;...

2019-02-01 12:29:46 148

原创 PAT A1047 Student List for Course

1039题的变种,简单很多;值得注意的是给出的样例代码,这里面维护的名字序列是索引,通过对名字序列的字典序对索引进行排序,从而可以在不打乱名字数组的情况下对输出的名字按照字典序排序,这是值得学习的一个点;样例代码如下所示:#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#inclu...

2019-01-31 22:36:17 122

原创 PAT A1039 Course List for Student

自己写的最笨的方法果然Time Limit Exceeded,根据相关的解答,使用map输出也有相关的问题,而且注意,如果使用cin和cout也会大大的增大时长,所以一定在当数据量过大的时候注意这一点;#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;iostream&gt;#include&lt;vector&g...

2019-01-31 21:03:38 181

原创 PAT A1069 The Black Hole of Numbers

这道题大意很简单,但是自己实现的时候犯了不少错误,所以这里做出一些总结:1.数字输出格式永远比字符要简单;2.注意,输出如果有特定的0要求或者格式要求,要首先考虑数字要求;3.注意函数的一些类型,比如pow函数,如果返回值的类型double强行直接转换成int可能会丢失精度。代码如下,精简,并且让人感觉很厉害:#include&lt;stdio.h&gt;#includ...

2019-01-31 20:05:23 193

原创 PAT A1005 Spell It Right

水题,取到每位操作然后按索引输出就行;唯一需要注意的就是输入十进制的100次方,超出了整型范围,所以要用字符串来存储;#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;string&gt;#include&lt;v...

2019-01-31 14:34:32 220

原创 PAT A1061 Dating

水题,没神马好说的,注意审题和条件的寻找;#include &lt;iostream&gt;#include &lt;stdio.h&gt;#include &lt;string.h&gt; using namespace std; char day[][4] = {"MON", "TUE", "WED", "THU", "FRI", &q

2019-01-31 13:43:25 144

原创 PAT A1077 Kuchiguse

总的来说,这道题也没什么新鲜的,就是从后向前判断是否有相同的结尾;但是值得注意的是输入的问题,这里用cin的话,如果后面在输入新的字符串, getline会将空格或者回车读入,所以一定要注意,在cin单个字符后,一定要getchar()来代表换行。剩下的也就没什么,主要的就是从后往前比较,如果发现不同字符,截取。迭代的时候一定要注意选取最小的字符个数进行迭代,从而使得不会出现非法的地址...

2019-01-31 12:55:28 206

原创 PAT A1082 Read Number in Chinese

 这道题不知道该怎么总结。。完全就是编码方面的碾压,自己编码过于薄弱,并不能很好的实现这道题,后续仍需要注意;其实最主要的就是,对于该问题,首要的就是找出规律,我们可以发现,没四位可以作为一个单位,也就是几千,后面会加一个特定的位数,万、亿、千等。所以需要进行输入的字符串分割,每四位作为一个千位数来输出,后面加上特定的标识。最后输出。这里补零的也要注意,建立一个flag,来标志相邻的两...

2019-01-30 20:48:09 139

原创 PAT A1058 A+B in Hogwarts

水题,没什么可说的;#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;vector&gt;#include&lt;iostream&gt;using namespace std;using std::vector;int main(){ //1-17-29 int G1,G2,S1,S2,K1...

2019-01-30 18:46:36 122

原创 PAT A1027 Colors in Mars

还是很经典的进制转换题,这道题要注意输出的问题,和普通数字不一样,由于13进制代表的是颜色编号,所以必定是两位数,不足位要补0;也有别的思路,比如先建立好13进制的不同字母的索引,然后计算出来的数组就按照索引来进行查询;大致的转换如下所示,由于题目中给了数字范围限定1-168,所以转换为13进制必定只有两位以下,输出的也可以先除,在取余:char radix[13]={'0'.....

2019-01-30 17:10:20 153

原创 PAT A1019 General Palindromic Number

这道题一共两个考点,一个是进制转换,一个是回文子串的判别;进制转换这里要注意下,本质上就是一个取余的过程,并且最终的结果要反向输出,才是真正的转换后的进制。这里仍然需要0特殊输入的判断,输入0,进行任何进制转换,仍为0;#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;vector&gt;#include&...

2019-01-30 16:27:14 147

原创 PAT A1097 Deduplication on a Linked List

这道题的大致意思是给出一个链表,剔除其中的绝对值相等的重复元素,并且将重复元素和剔除后的链表进行输出。本来原来的思路是维持两个链表,将重复的和不重复的单独提出加入链表,但是这种方法极其麻烦。书上给的思路十分值得借鉴,和之前总结的链表题目一样,将每个链表节点中标志一个order位,然后对整体进行排序,使得有效节点全部在链表左边。并且其中,不重复的左半部分,重复的在右半部分。然后按照顺...

2019-01-30 15:32:14 158

原创 PAT A1052 Linked List Sorting

这一道题卡了很久。。。说实话是没考虑到测试用例的多样性,好在牛客网上面公布了一些测试用例,让我知道哪块出现了问题;上述的测试用例显示了问题所在,其问题就是虽然输入了节点,但是起始节点压根跟该节点没关系;这道题彰显的有两个要点:其一:cmp函数的自定义使用,利用cmp来达到自己的排序目的;其二:关于静态链表中有序节点的存贮。其实下述代码解法中比较重要的点就是利用标志位强行将有...

2019-01-29 21:41:17 121

原创 PAT A1074 Reversing Linked List

这道题极其经典,链表反转今年考研的时候也出现过。所以是重点的重点,以后要做双向链表的反转;最主要的是观察反转链表中的规律变化。这里贯穿一个特别重要的思想,就是有用的链表节点放在左边,方便进行访问,解决了节点从后往前遍历的问题,所以就可以从后向前按照坐标进行后继的修改。当时自己就卡在这个地方,所以这是最重要的两个点之一。#include&lt;stdlib.h&gt;#include...

2019-01-29 20:46:18 131

原创 PAT A1056 Mice and Rice

每次做PAT感觉自己都是个弱智。。。甚至怀疑自己是不是不适合CS。。。。他妈的这道题思路居然是看的;这道题其实最核心的思路就是怎么解决迭代问题,还有RANK的计数问题;首先题目是相当于循环赛的形式,所以一开始就要发现轮次的联系。RANK排名其实在本题目中就是轮次+1的关系;首先将所有的老鼠入队列,假如一共N组,每组M个,就将队列中每M个选出最大的,塞到队尾,规定RANK值,操作N次...

2019-01-29 19:01:12 263

原创 PAT 1051 Pop Sequence

这道题其实算栈中一道比较经典的题目。之前在数据结构试题里遇到过相关的题,但是是根据弹出序列来进行判断的,也就是如果你要弹出某些元素,该元素之前的元素肯定被弹出过,但是相关的细节思路想不出来,后面会做出相关的总结;其实主体思路很简单,但是第一次的时候并没有想出来:先置flag=true,对于输入的1~N个数,挨个入站,然后在每次压栈之后看栈顶元素是否和判定输出队列的第i元素相同;如果...

2019-01-29 16:36:19 202

原创 PAT A1032 Sharing

题目的大致叙述如下所示:简单来说,题目的大致需求就是给出两个链表,其中链表的一部分为共用部分,目的就是找到那个共用部分的第一个结点索引。自己之前先动手实现了一遍,但是仿佛像一个弱智;当时自己想的反正要对比,就像排序那样对比两个序列,两个链表的元素挨个对比。但是忽略了一个问题,当前面不同链表个数相差个大的时候,总会有一个链表先穷尽,所以不可能找到交汇点。至于书上和网上的思路是建立节点...

2019-01-28 18:57:23 318 1

原创 动态链表/静态链表

链表也是一类老生常谈的问题,以前也学习过,没什么比较新鲜的东西,所以这里提及一下静态链表和动态链表的概念区分;所谓动态链表就是使用人工操作方式使得一个个Node节点指向下一个节点,其每个节点中的连接方式使用的是指针连接;而静态链表使用的方式是构造一个数组,其数组元素就是一个个节点,节点的前驱后继关系使用索引的方式。构造方式大致如下:struct Node{ typenam...

2019-01-28 14:49:25 215

原创 关于关键路径的一些个人理解

在之前的一篇文章,提到了拓扑排序的相关概念,其实拓扑排序所操作的对象类型就是AOV网。先介绍一下AOV网和AOE网的相关概念:AOV网,也就是顶点活动,就是前面文章所阐述的一种有向无环图。其节点代表活动,使用边来代表节点之间的序列关系;AOE网,也就是边活动,其用边来代表具体的活动,并且用定点代表事件,其中边权代表完成活动的时间。这里要区分事件和活动这一概念。这里的事件更像是一种标志,...

2019-01-27 16:35:58 1971

空空如也

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

TA关注的人

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