自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 无重复字符串的排列组

递归的方式解决,只需要每次判断当前节点是否已经被占用就好class Solution {public:void findlist(string s,vector<string>&cc,string tem,int begin,vector<bool>&flag){ if(tem.size()==s.size())cc.push_back(te...

2020-03-26 16:44:53 179

原创 94、二叉树中序遍历

二叉树的中序遍历,这道题要求不能用递归的方式采用迭代的方式利用栈的特性,先是将root节点及其左节点全部放到栈中,然后依次弹栈,每次弹出后再判定当前节点是否有右节点,当有右节点时,再将此右节点的所有左节点入栈,再弹栈,while循环直至栈空**Definition for a binary tree node.struct TreeNode {int val;Tre...

2020-03-23 20:29:46 117

原创 1008、先序构建搜索二叉树

应为给的容器中为先序遍历的值,所有将其遍历的同时进行二叉树的构建即可。二叉树的构建采用递归的方法,逆先序遍历/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(...

2020-03-23 15:28:36 186

原创 654、最大二叉树

这道题没给根节点,还得自己重新构建,构建思想和二分法类似先找到begin到end之间的最大值,记录下这个值的同时记录下这个值的位置,new一个新节点,再将左右节点进行递归只需要指定好递归终止判断就好,也就是begin>end/**Definition for a binary tree node.struct TreeNode {int val;TreeNod...

2020-03-17 16:30:52 67

原创 04.03、特定深度节点链表

这题就是对树进行层次遍历的时候顺便构建一个链表,再把链表压入容器/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};...

2020-03-17 15:06:33 112

原创 230、二叉搜索树第K小元素

我想了两种方法,一种就是将二叉树进行前序遍历,并将值全部扔进一个容器里面,这样容器里面的值就是递增排序的数,输出第k-1个值 ,就ok,这个方法很容易理解。第二个就是用栈的性质,将树的左值先扔到栈里面,然后再弹栈,每次弹栈都将此节点的右值扔进栈里,这样就能进行递增遍历,加上k–,当k=0时正好输出就ok。struct TreeNode {int val;TreeNode *left;Tr...

2020-03-15 16:26:13 73

原创 21、调整数组顺序

使用一次快排最简单class Solution {public:vector exchange(vector& nums){int i=0,j=nums.size()-1;while(i<j){if(nums[i]%20&&nums[j]%21){int tem=nums[i];nums[i]=nums[j];nums[j]=tem;i++;...

2020-03-11 17:34:25 69

原创 136、只出现一次的数字

这道题最好的做法是异或,0^number=numbernumber^number=0class Solution {public:int singleNumber(vector& nums){int n=0;for(int i=0;i<nums.size();i++){n=n^nums[i];}return n;}};...

2020-03-11 16:24:29 58

原创 02.07、链表相交

这道题主要的问题在于两条链表长度不同,而且是按照地址来确定相交点的。我刚开始的想法是将两个链表的值分别扔进vector里,然后倒着遍历,当出现不同时,+1就是相交点。想一想定义一个vector<ListNode*>这样应该可以这道题有一个很巧的做法,就是定义头节点,让它们对面条链表都进行遍历,这样就很巧的消除了这两条链表的长度差。意思就是first先对A链表进行遍历 second...

2020-03-10 23:41:34 127

原创 897、递增顺序查找树

/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};/class Solution {public:...

2020-03-10 20:46:09 73

原创 68、二叉树的最近公共祖先

这道题求最近公共祖先,我的想法是先在二叉树中找到这两个节点,然后将这两个节点到根节点的所有节点分别存到两个容器中,因为是从当前节点到根节点的逆序存储,所以只需要再对两个容器进行对比,找到他们最近相同的一个点,这个点就一定是他们的最近公共祖先。在写代码时,如果存在布尔值,在进行判断时一定要记得这样写bool ret = false;if( !ret )这样进行判断不易错,我写成ret=fals...

2020-03-10 19:06:37 66

原创 02.01、移除重复节点

利用map的特性,将第一次遇到的值装入map中,同时更新链表若是键值的值大于0,则跳过当前节点,最后记得要在遍历完链表后将新链表的末尾置为NULL,即list->next=NULL链表的题目都值得注意的就是地址不要弄串了,每次都应该多申请一个地址来记录原本的头节点,最后直接返回pre->next/**Definition for singly-linked list.s...

2020-03-09 21:59:13 102

原创 965、单值二叉树

二叉树的题目有点形成惰性思维了,迭代几乎解决了所有。将二叉树根植记录下来,再对二叉树进行前序遍历(哪一种遍历都行),若是不同则返回就好/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) :...

2020-03-09 21:25:47 59

原创 206、反转链表

用迭代法,将个节点的值往前插如 1->2->3->4->5 new一个Null节点第一个节点1->NULL head=head->next第二个节点2->1->NULL就这样前插/**Definition for singly-linked list.struct ListNode {int val...

2020-03-09 17:48:29 65

原创 03、数组中的重复数字

这道题好像是分别需要考虑时间和空间直接排序,再检测邻位是否相同,思路要简单很多class Solution {public:int findRepeatNumber(vector& nums){sort(nums.begin(),nums.end());int i=nums.size()-1;int c=-1;while(i>=0){if(nums[i]==nu...

2020-03-09 16:12:22 66

原创 559、N叉树最大深度

对每一个分支进行DFS,计算每个分支的长度,每次都进行大小比较,最后输出最大的只是 int tem=maxDepth(root->children[i]);if(tem>max)max=tem;这一段,我最开始写if(max<maxDepth(root->children[i]))max=maxDepth(root->children[i]);显示超时。...

2020-03-08 21:17:43 85

原创 108、将有序数组转化为二叉树

这道题刚开始的时候我的if中是left>=right即返回null,后面发现,这样就会使得右区间为开,找了很久的错误。/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x...

2020-03-08 20:20:07 126

原创 32、从上到下打印二叉树

这就是层序遍历算法,只是需要将值扔进容器中利用队列的特点,将二叉树每层的值一词扔进队列中,在将子树扔进队列的同时,拿出当前节点的值,即可保证层序遍历/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(i...

2020-03-06 17:23:59 61

原创 54搜索二叉树的第K大值

因为为搜索二叉树,对二叉树进行一次反中序遍历即可/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};*/...

2020-03-06 16:44:00 170

原创 589、N叉树前序遍历

/*// Definition for a Node.class Node {public:int val;vector<Node*> children;Node() {}Node(int _val) { val = _val;}Node(int _val, vector<Node*> _children) { val = _val;...

2020-03-05 20:38:33 96

原创 判断字符是否唯一

用map来测试了是最快的class Solution {public:bool isUnique(string astr){bool ret = true;map<char, int>cc;for (int i = 0; i < astr.size(); i++){cc[astr[i]]++;if (cc[astr[i]] > 1)ret = fals...

2020-03-04 21:58:41 88

原创 832、翻转图像

边翻转边换数字就好class Solution {public:vector<vector> flipAndInvertImage(vector<vector>& A){for(int k=0;k<A.size();k++){int i=0,j=A[k].size()-1;while(i<j){int n=A[k][i];A[k][...

2020-03-04 19:07:42 53

原创 226翻转二叉树

判断是否已经是NULL,不是则将左右互换,再递归/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};*/clas...

2020-03-04 18:05:21 80

原创 621 合并二叉树

将两个二叉树合并,都为NULL返回NULL,缺一个返回剩下的那个两个都有,就将值相加再返回合并那个/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), r...

2020-03-03 22:20:00 87

原创 938二叉搜索树范围和

对二叉树进行遍历,再对比值/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};/class Solut...

2020-03-03 16:51:51 72

原创 1021去掉最外层括号

多一个计数器,若是’(‘则加一操作,若是’)'则减一操作当加一操作后技术器为1时,则将此位去掉,建议操作计数器得0时,将此位去掉class Solution {public:string removeOuterParentheses(string S){int count = 0;string tem = “”;for (int i = 0; i<S.size(); i++)...

2020-03-03 13:49:09 84

原创 反转链表

将链表里面的数字取出来,再倒着放回去就好了/**Definition for singly-linked list.struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};/class Solution {public:ListNode re...

2020-03-03 12:54:06 56

原创 25合并两个排序链表

创建两个同地址表头,再将其中一个对两个链表进行排序返回另一个表头->next,因为地址相同,所以返回的是排序好的链表/**Definition for singly-linked list.struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}...

2020-03-03 12:26:49 67

原创 逆序输出链表值

先将链表值输出在一个vector中再将vector逆向输出/**Definition for singly-linked list.struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};/class Solution {public:vector ...

2020-02-29 23:13:24 126

原创 二叉树镜像问题

递归的将二叉树左右交换交换函数也可以直接写在一起Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};/class So...

2020-02-29 22:36:37 69

原创 237.删除链表中的节点

这道题主要就是在,给出的点就是要删除的点。只需要将链表后续的值往前挪一位,再将最后一位置NULL就ok/**Definition for singly-linked list.struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};/class Solu...

2020-02-29 18:13:09 56

原创 02.02

求倒数第几个将链表节点数求出,再减去K即可/**Definition for singly-linked list.struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};/class Solution {public:int kthToLast(L...

2020-02-28 13:59:20 124

原创 化栈为队

将栈化为队列我的想法是1、判断后一个队列里面是否有存值,若是有,栈顶即队首2、判断第一个栈是否有存值,若是有,栈顶即队尾class MyQueue {private:stack c_first;stack d_second;public:/** Initialize your data structure here. */MyQueue(){}/** Push elem...

2020-02-27 17:13:04 140

原创 LCP.1

LETCODE LCP.1猜数字class Solution {public:int game(vector& guess, vector& answer) { int ret = 0; for (int i = 0; i<guess.size(); i++) { if (guess[i] == answer[i]) { ret++; } }...

2020-02-25 15:54:07 191

原创 LETCODE 771

class Solution {public:int numJewelsInStones(string J, string S) {map<char, int> tem;int count = 0;for (auto i = S.begin(); i != S.end(); i++){tem[*i]++;}for (auto j = J.begin(); j != J...

2019-08-03 22:25:00 71

原创 TETCODE 1089

class Solution {public:void duplicateZeros(vector& arr) {vector tem;int size = 0;int asize = arr.size();for (auto it = arr.begin(); it != arr.end(); it++){if (*it == 0){tem.push_back(0);...

2019-08-03 22:14:05 91

原创 LETCODE 1103 distributeCandies

简单的数学逻辑问题我可能写的蠢了一点,结果没问题class Solution {public: vector<int> distributeCandies(int candies, int num_people) { vector<int> arry; int temp = candies; int neg = 0; int index; in...

2019-07-28 23:43:44 78

原创 LETCODE 1108 INVALID_ID

代码简单,按照题目要求做就行了public:string defangIPaddr(string address){vectortemp;string c;for (int i = 0; i < address.size(); i++){if (address[i] != ‘.’){temp.push_back(address[i]);}else{temp.pus...

2019-07-28 22:03:22 87

原创 LETCODE 1122 the related of array

这道题按照题目要求解答就可以了class Solution {public: vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) { map<int, int>arry; map<int, int>arry2; vec...

2019-07-28 21:11:16 87

原创 LETCODE 1128 dominoes

LETCODE 1128 dominoes这个题目暴力不行int numEquivDominoPairs(int** dominoes, int dominoesSize, int* dominoesColSize) { int eqsize = 0; for (int i = 0; i < dominoesSize - 1; i++) { dominoesColSize ...

2019-07-28 17:28:40 208

空空如也

空空如也

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

TA关注的人

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