力扣
算法数据结构
holdtao
这个作者很懒,什么都没留下…
展开
-
力扣315计算右侧小于当前元素的个数
代码】力扣315计算右侧小于当前元素的个数。原创 2022-07-27 11:37:04 · 73 阅读 · 0 评论 -
力扣112路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22 输出:true 解释:等于目标和的根节点到叶节点路径如上图所示。 示例 2: 输入:root原创 2022-04-18 11:00:20 · 64 阅读 · 0 评论 -
力扣222.完全二叉树的节点个数
完全二叉树的节点个数 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例 1: 输入:root = [1,2,3,4,5,6] 输出:6 示例 2: 输入:root = [] 输出:0 示例 3: 输入:root = [1] 输出:1 提示: 树中节点的数目范围是[0, 5 * 104.原创 2022-04-15 11:34:51 · 77 阅读 · 0 评论 -
力扣559N 叉树的最大深度
给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,5,6] 输出:3 示例 2: 输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14] 输出:5 提示: 树的深度不会超过 10原创 2022-04-14 11:25:41 · 53 阅读 · 0 评论 -
力扣 111 104二叉树的最大深度和最小深度总结
// 力扣104 二叉树最大深度 // 递归方法 class Solution { public: int maxDepth(TreeNode* root) { if(!root) { return 0; } int left = maxDepth(root->left)+1; int right = maxDepth(root->right)+1; return left>r原创 2022-04-12 11:49:38 · 626 阅读 · 0 评论 -
力扣572 另一棵树的子树
给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 示例 1: 输入:root = [3,4,5,1,2], subRoot = [4,1,2] 输出:true 示例 2: 输入:root = [3,4,5,1,2,null,null,null,null,0], s原创 2022-04-13 18:59:02 · 201 阅读 · 0 评论 -
力扣100判断树是否相等
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p = [1,2,3], q = [1,2,3] 输出:true 示例 2: 输入:p = [1,2], q = [1,null,2] 输出:false 示例 3: 输入:p = [1,2,1], q = [1,1,2] 输出:false 提示: 两棵树上的节点数目都在范围 [0, 100] 内 -104 <= Node.val <=原创 2022-04-13 16:48:15 · 84 阅读 · 0 评论 -
367力扣有效的完全平方数C++
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。 进阶:不要 使用任何内置的库函数,如 sqrt 。 示例 1: 输入:num = 16 输出:true 示例 2: 输入:num = 14 输出:false 提示: 1 <= num <= 2^31 - 1 通过次数140,498提交次数313,365 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-perf原创 2022-03-31 13:37:48 · 701 阅读 · 0 评论 -
力扣69x的平方根
力扣69x的平方根 思路就是: 1.建立一个vector数组去保存数据,数据范围为1-n/2,在这个范围内,是可以计算出所有的n的平方根的值,除了两个情况,一个是n=0和n=1(这两种情况放在主函数判断) 2.在搜索的时候在数组内部会出现两种情况,一种是存在整数解,一种是不存在整数解。 存在整数解直接输出对应编号在打印出数组中对应编号的值即可。 不存在的话就判断小的数的平方比目标值小,大的数比目标数大,取较小的那个数即可。 #include<iostream> #include<vecto原创 2022-03-30 10:34:10 · 53 阅读 · 0 评论 -
力扣34题. 在排序数组中查找元素的第一个和最后一个位置
题目 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶:你可以设计并实现时间复杂度为 O(logn)O(\log n)O(logn) 的算法解决此问题吗? 示例 1: 输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,4] 示例 2: 输入:nums = [5,7,7,8,8,10], target = 6 输出:[-1,-1] 示例原创 2022-03-29 13:56:48 · 73 阅读 · 0 评论 -
搜索插入位置力扣35
#include<iostream> #include<vector> using namespace std; vector<int>a; // 这道题只能选用左闭右开方法 int search(vector<int>nums,int targer) { int left = 0; int right = nums.size()-1; while(left < right) { int middle =原创 2022-03-26 11:31:34 · 46 阅读 · 0 评论 -
二分查找力扣702
二分查找力扣702 左闭右闭方法and左闭右开方法 #include<iostream> #include<vector> using namespace std; vector<int>a; //区间是左闭右闭 int search1(vector<int>& nums,int targer) { int left = 0; int right = nums.size() - 1; while(left <= rig原创 2022-03-26 10:54:04 · 64 阅读 · 0 评论