自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cloud

心之所向,素履以往,生如逆旅,一苇以航

  • 博客(11)
  • 收藏
  • 关注

原创 LeetCode -62不同路径

题目描述 题目来源: https://leetcode-cn.com/problems/unique-paths/ 题解 动态规划经典题目,比起青蛙跳台阶,使用二维数组更易理解; 1 首先定义数组元素dp[x][y],以当前坐标为起点(0,0), dp[x][y]表示走到终点时所有的路径,那我们所求的dp[m-1][n-1]为我们所要求的答案。 2 要最终走到(i,j)位置,有两种走法,第一种是从dp[i-1][j],第二种是从dp[i][j-1],也就是最终到达有两种情况,向下和向右,那么所有的情况为d

2020-08-18 08:42:54 104

原创 LeetCode -538 把二叉搜索树转化为累加树(C语言描述)

题目描述: 题目来源: https://leetcode-cn.com/problems/convert-bst-to-greater-tree/ 思路: 采用递归反序中序遍历实现,因为二叉搜索树右节点一定比双亲结点大,而左节点比双亲节点小,故采用以右子树为起点的中序遍历,使用sum累加后赋值即可。 代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNo

2020-07-24 15:27:58 117

原创 剑指offer 27二叉树的镜像(C语言描述)

题目描述: 题目来源 https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/ 方法一: 利用先序遍历求解: void exchange(struct TreeNode *root) { struct TreeNode *T; T=root->left; root->left=root->right; root->right=T; } struct TreeNode* mirrorTree(st

2020-07-16 15:41:15 390

原创 链式二叉树的递归遍历(C语言描述)

二叉树的遍历可以采用递归和非递归的方法,本文介绍递归遍历的方法,代码如下。 #include<stdio.h> #include<stdlib.h> //定义节点结构 typedef struct BTnode { char data; struct BTnode *plchild; struct BTnode *prchild; }BiTNode,*BiTree; void CreateBiTree(BiTree *); //构造子树 void Pre

2020-07-13 15:08:30 263

原创 LeetCode -232-用栈实现队列(C语言描述)

题目描述 本题用到了栈和队列的知识,通过创建两个栈,一个栈入队,一个栈出队,从而能实现一个队列,如图 代码如下 #define MAX 10 typedef struct { int data[MAX]; int Top; //栈顶元素 }Create_Stack; typedef struct { //创建两个栈 Create_Stack S1; Create_Stack S2; } MyQueue; /** Initialize your data str

2020-07-05 20:51:09 180

原创 LeetCode -682棒球比赛(C语言描述)

LeetCode 682 棒球比赛 题目来源 LeetCode -682 题目描述 注: 输入列表的大小将介于1和1000之间 列表中的每个整数都将介于-30000和30000之间。 本题用到了栈的先进后出的知识,本题已知栈的长度,构造静态栈,利用switch语句即可 int calPoints(char ** ops, int opsSize){ int sum=0; int Top=-1; //定义栈顶元素 int array[opsSize]; for(i

2020-06-26 15:12:42 583

转载 哈希表(数据结构)

参考链接:数据结构(严蔚敏) 一、什么是Hash表 要想知道什么是哈希表,那得先了解哈希函数 哈希函数 对比之前博客讨论的二叉排序树 二叉平衡树 红黑树 B B+...

2020-06-16 16:04:16 385

原创 LeetCode 面试题 -22 链表中倒数第k个节点(C语言描述)

链表中倒数第K个节点 题目描述 题目来源:LeetCode-链表中倒数第K个节点 由于在本题中,已经给定了链表不为空,测试用到的K值小于链表长度且不为0,故不需要考虑这些特殊情况 方法一 看到这个题目后,最先想到的方法是进行遍历,第一次遍历求出链表长度Length,第二次遍历(Length-k)+1次即为待求节点 代码如下 struct ListNode* getKthFromEnd(struct ListNode* head, int k){ int count = 1; st

2020-06-09 19:06:19 337 1

原创 单链表寻找中间节点

单链表寻找中间节点 在不知道链表长度的情况下,要求找到链表的中间节点。本例中如果链表长度为偶数情况下输出中间两个节点中靠后的那个。 方法一 遍历两遍链表,第一遍遍历的时候得到数组的长度count,第二次遍历的时候指针移动到(count/2)时输出。但该方法的复杂度较高。代码如下 void Find_Mi() { int count=0; struct Node *p=pHead; while (p!=NULL) { count++; p=p-&

2020-06-02 21:49:00 1554 2

原创 LeetCode-237 删除链表中的节点(C语言描述)

题目描述 题目来源:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/ 思路:这个题刚刚看以为就是普通链表的删除,但是发现题目没有给头节点,看了其他的解答发现思路大致是将node的后一个节点赋值给node,跳过node的一下个节点,因为要删除的节点已经给出,所以不需要手动删除。 代码如下: void deleteNode(struct ListNode* node) { node->val=node->nex

2020-05-31 17:36:54 210 1

原创 Leetcode-24 反转链表(C语言描述)

题目描述 方法一

2020-05-30 20:06:09 142

空空如也

空空如也

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

TA关注的人

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