![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
包括数据结构,计算方法
偷的浮生半日闲.
这个作者很懒,什么都没留下…
展开
-
力扣刷算法之第一题---求两数之和
66原创 2021-09-18 15:23:32 · 324 阅读 · 0 评论 -
C语言实现左叶子之和
一.题目描述计算给定二叉树的所有左叶子之和。二.解题方法深度优先搜索三.解题思路一个节点为「左叶子」节点,当且仅当它是某个节点的左子节点,并且它是一个叶子结点。因此我们可以考虑对整棵树进行遍历,当我们遍历到节点 node 时,如果它的左子节点是一个叶子结点,那么就将它的左子节点的值累加计入答案。四.实现代码bool isLeafNode(struct TreeNode *node) { // 孩子节点均为空,则该节点是叶子节点 return !node-&g原创 2021-11-21 15:20:41 · 1122 阅读 · 0 评论 -
力扣刷题--跳跃游戏II(c语言实现)
1.题目 给你一个非负整数数组nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。2. 解题思路拿示例1来看,从数组的第 0 个位置开始跳,跳的距离小于等于数组上对应的数。求出跳到最后个位置需要的最短步数。比如上图中的第 0 个位置是 2,那么可以跳 1 个距离,或者 2 个距离,我们选择跳 1 个距离,就跳到了第 1 个位置,也就是 3 上。然后...原创 2021-10-17 16:17:55 · 1742 阅读 · 1 评论 -
C语言实现平衡二叉树
目录一.题目描述 二.解题方法 三.解题思路 四.代码展示一.题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。二.解题方法 递归算法,先序遍历三.解题思路由题可知平衡二叉树的概念为左右子树的高度差不超过1,那么对于每一...原创 2021-11-14 18:13:42 · 252 阅读 · 0 评论 -
盛最多水的容器
1.题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8...原创 2021-10-07 16:46:58 · 106 阅读 · 0 评论 -
用C语言实现数组值加一问题
1.题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。2.解题方法找出最长的后缀93.解题思路首先确定加一是在数组digits最后一位加上的,那么判断进位时可以倒着遍历。可以分为三种情况:·最后一位不为9,比如[1, 2, 3], 那么直接将最后一位加一,并返回 [1, 2, 4];·倒着遍历,其中...原创 2021-10-22 20:34:51 · 4629 阅读 · 0 评论 -
用C语言实现最大子序和
1.题目描述给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。2.解题方法 贪心法3.解题思路从头开始遍历,找出最大子序列,可以是单个数字,也可以是一串数字。根据贪心法的思想,可以先求局部最优子序列,通过比较,最后得到全局最优解。以示例一为例,输入[-2, 1, -3, 4, -1, 2, 1, -5, 4]。如果 -2 1 在一起,计算起点的时候,一定是从1开始计算,因为负数只会拉低总和,这就是贪心贪的地方!局部最...原创 2021-10-24 17:22:35 · 528 阅读 · 0 评论 -
二叉树的最近公共祖先
目录一.问题描述二.解题方法三.解题思路四.代码展示一.问题描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root =[6,2,8,0,4,7,9,null,null,3,5]二.解题方法递归算法三.解...原创 2021-11-07 15:26:25 · 51 阅读 · 0 评论 -
用C语言实现最小路径和
1.题目描述给定一个包含非负整数的mxn网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。2.解题方法:动态规划3.解题思路因为每次只能向下或右移动1步,那么在第一行的元素只能由前一元素向右移动得到。第一列的元素只能由上一元素向下移动得到。然后他们的路径和都是唯一的,由前一元素值相加。还有就是不在第一行,第一列的。这些元素可以由上一元素向下,或者向右移动得到,那么此时就应选路径和最小的那个。由于每个元素对...原创 2021-10-28 16:55:25 · 602 阅读 · 0 评论