
深度优先
_少说话_多做事_
海底月是天上月,眼前人是心上人,向来心是看客心,奈何人是剧中人
展开
-
根据描述创建二叉树
题目给你一个二维整数数组 descriptions ,其中 descriptions[i] = [parenti, childi, isLefti] 表示 parenti 是 childi 在 二叉树 中的 父节点,二叉树中各节点的值 互不相同 。此外:如果 isLefti == 1 ,那么 childi 就是 parenti 的左子节点。如果 isLefti == 0 ,那么 childi 就是 parenti 的右子节点。请你根据 descriptions 的描述来构造二叉树并返回其 根节点 。原创 2022-04-05 18:25:48 · 1457 阅读 · 0 评论 -
字典序排数
问题给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。链接:https://leetcode-cn.com/problems/lexicographical-numbers思路朴素想法,直接排序深度优先搜索,先根遍历进一步可以使用迭代比如n=109访问序列为1、10、100、101、102……朴素代码class Solution {public: vector<int> lex原创 2022-01-04 22:38:22 · 240 阅读 · 0 评论 -
字典序的第K小数字
题目字节跳动高频面试题给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字。思路如果看作十叉树的先序遍历,遍历到第k位即可时间复杂度是O(n),我们可以使用count函数,如果子树中的节点数少于k,不再遍历代码class Solution {public: int findKthNumber(int n, int k) { long pre=1; // 当前遍历到的数字 int i=0; // 当前遍历到第几个原创 2022-03-27 22:54:19 · 184 阅读 · 0 评论 -
统计按位或能得到最大值的子集数目
题目给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集 。如果选中的元素下标位置不一样,则认为两个子集 不同 。对数组 a 执行 按位或 ,结果等于 a[0] OR a[1] OR … OR a[a.length - 1](下标从 0 开始)。链接:https://leetcode-cn.com/problems/c原创 2022-03-26 18:44:55 · 485 阅读 · 0 评论