- 截断数组给定一个长度为 n 的数组 a1,a2,…,an。现在,要将该数组从中间截断,得到三个非空子数组。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?输入格式第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。输出格式输出一个整数,表示截断方法数量。数据范围前六个测试点满足 1≤n≤101≤n≤101≤n≤10。所有测试点满足 1≤n≤1051≤n≤1... 截断数组给定一个长度为 n 的数组 a1,a2,…,an。现在,要将该数组从中间截断,得到三个非空子数组。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?输入格式第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。输出格式输出一个整数,表示截断方法数量。数据范围前六个测试点满足 1≤n≤101≤n≤101≤n≤10。所有测试点满足 1≤n≤1051≤n≤1...
- 数据结构之二叉树的结构和遍历的实现 数据结构之二叉树的结构和遍历的实现
- 深度优先搜索算法利用的就是回溯算法思想,但它除了用来指导像深度优先搜索这种经典的算法设计之外,还可以用在很多实际的软件开发场景中,比如正则表达式匹配、编译原理中的语法分析等。 深度优先搜索算法利用的就是回溯算法思想,但它除了用来指导像深度优先搜索这种经典的算法设计之外,还可以用在很多实际的软件开发场景中,比如正则表达式匹配、编译原理中的语法分析等。
- 分治和递归的区别:分治算法是一种处理问题的思想,递归是一种编程技巧。 分治算法一般都比较适合用递归来实现。分治算法的递归实现中,每一层递归都会涉及这样三个操作:分解、解决、合并。 分治和递归的区别:分治算法是一种处理问题的思想,递归是一种编程技巧。 分治算法一般都比较适合用递归来实现。分治算法的递归实现中,每一层递归都会涉及这样三个操作:分解、解决、合并。
- 贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。 贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。
- 二分查找(Binary Search)算法是一种针对有序且不含重复数据集合的查找算法,时间复杂度为 O(logn) ,二分查找虽然性能比较优秀,但应用场景也比较有限。 二分查找(Binary Search)算法是一种针对有序且不含重复数据集合的查找算法,时间复杂度为 O(logn) ,二分查找虽然性能比较优秀,但应用场景也比较有限。
- 递归是一种非常高效、简洁的编码技巧。只要是满足“三个条件”的问题就可以通过递归代码来解决。编写递归代码的关键就是不要把自己绕进去,正确姿势是写出递推公式,找出终止条件,然后再翻译成递归代码。 递归是一种非常高效、简洁的编码技巧。只要是满足“三个条件”的问题就可以通过递归代码来解决。编写递归代码的关键就是不要把自己绕进去,正确姿势是写出递推公式,找出终止条件,然后再翻译成递归代码。
- 广度优先搜索,通俗的理解就是,地毯式层层推进,从起始顶点开始,依次往外遍历。广度优先搜索需要借助队列来实现,遍历得到的路径就是起始顶点到终止顶点的最短路径。深度优先搜索用的是回溯思想,非常适合用递归。 广度优先搜索,通俗的理解就是,地毯式层层推进,从起始顶点开始,依次往外遍历。广度优先搜索需要借助队列来实现,遍历得到的路径就是起始顶点到终止顶点的最短路径。深度优先搜索用的是回溯思想,非常适合用递归。
- 每条边都有一个权重(weight)的无向图叫作带权无向图(weighted graph),通过这个权重可以用来表示QQ好友间的亲密度。 每条边都有一个权重(weight)的无向图叫作带权无向图(weighted graph),通过这个权重可以用来表示QQ好友间的亲密度。
- 因为红黑树是一种性能非常稳定的二叉查找树,所以,在工程中,但凡是用到动态插入、删除、查找数据的场景,都可以用到它。不过,它实现起来比较复杂,如果自己写代码实现,难度会有些高,这个时候,其实更倾向用跳表 因为红黑树是一种性能非常稳定的二叉查找树,所以,在工程中,但凡是用到动态插入、删除、查找数据的场景,都可以用到它。不过,它实现起来比较复杂,如果自己写代码实现,难度会有些高,这个时候,其实更倾向用跳表
- 在二叉查找树中,查找、插入、删除等很多操作的时间复杂度都跟树的高度成正比。两个极端情况的时间复杂度分别是 O(n) 和 O(logn),分别对应二叉树退化成链表的情况和完全二叉树。 在二叉查找树中,查找、插入、删除等很多操作的时间复杂度都跟树的高度成正比。两个极端情况的时间复杂度分别是 O(n) 和 O(logn),分别对应二叉树退化成链表的情况和完全二叉树。
- 在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于 2 的节点)的树结构。通常分支被称作“左子树”或“右子树”。 在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于 2 的节点)的树结构。通常分支被称作“左子树”或“右子树”。
- 哈希算法的定义:将任意长度的二进制串映射为固定长度(一般是 128 bit)的二进制串,这个映射的规则就是哈希算法。而通过原始数据映射之后得到的二进制值串就是哈希值。 哈希算法的定义:将任意长度的二进制串映射为固定长度(一般是 128 bit)的二进制串,这个映射的规则就是哈希算法。而通过原始数据映射之后得到的二进制值串就是哈希值。
- 散列表和链表这两种数据结构经常被放到一起使用。比如 Redis 的有序集合不仅使用了跳表,还用了散列表。再比如 Java 语言中的 LinkedHashMap 容器,也用到了散列表和链表两种数据结构。 散列表和链表这两种数据结构经常被放到一起使用。比如 Redis 的有序集合不仅使用了跳表,还用了散列表。再比如 Java 语言中的 LinkedHashMap 容器,也用到了散列表和链表两种数据结构。
- 分享常见的数据结构包括:数组、链表、栈和队列等,以及常见的算法:排序、分治、回溯、递归、贪心、动态规划等。 分享常见的数据结构包括:数组、链表、栈和队列等,以及常见的算法:排序、分治、回溯、递归、贪心、动态规划等。
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签