- 文章目录 1、数据结构1.1、数据结构的起源1.2、基本概念和术语1.3、逻辑结构和物理结构1.3.1、逻辑结构1.3.1、物理结构 2、算法2.1、什么是算法?2.1、算法的特性2.2、算法设计要求2.3、算法分析2.3.1、时间复杂度2.3.1.1、常数阶2.3.1.2、线性阶2.3.1.3、对数阶2.3.1.4、平方阶 2.3.2、空间复杂度 ... 文章目录 1、数据结构1.1、数据结构的起源1.2、基本概念和术语1.3、逻辑结构和物理结构1.3.1、逻辑结构1.3.1、物理结构 2、算法2.1、什么是算法?2.1、算法的特性2.2、算法设计要求2.3、算法分析2.3.1、时间复杂度2.3.1.1、常数阶2.3.1.2、线性阶2.3.1.3、对数阶2.3.1.4、平方阶 2.3.2、空间复杂度 ...
- 作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言 算法是数据结构的灵魂! 好的算法搭配上合适的数据结构,可以让代码功能大大的提升效率。当然,算法学习不只是刷题,还需要落地与应用,否则到了写代码的时候,还是会for循环+ifelse。 当开发一个稍微复杂点的业务流程时,往往要用到与... 作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言 算法是数据结构的灵魂! 好的算法搭配上合适的数据结构,可以让代码功能大大的提升效率。当然,算法学习不只是刷题,还需要落地与应用,否则到了写代码的时候,还是会for循环+ifelse。 当开发一个稍微复杂点的业务流程时,往往要用到与...
- 给定一个整数,写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true 示例 2: 输入: 0 输出: false 示例 3: 输入: 9 输出: true 示例 4: 输入: 45 输出: false 进阶: 你能不使用循环或者递归来完成本题吗? 注意最后一句话。 思路:我们推断出int里最大的答案,用它除以给定值即可判断... 给定一个整数,写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true 示例 2: 输入: 0 输出: false 示例 3: 输入: 9 输出: true 示例 4: 输入: 45 输出: false 进阶: 你能不使用循环或者递归来完成本题吗? 注意最后一句话。 思路:我们推断出int里最大的答案,用它除以给定值即可判断...
- 难度困难314 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例 2: 输入: [-10,9,20,null,null,15,7] -10 &... 难度困难314 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例 2: 输入: [-10,9,20,null,null,15,7] -10 &...
- 文章目录 一、红黑树1、红黑树的性质2、 红黑树平衡操作3、HashMap中的红黑树 二、散列(Hash)1、 散列表(Hash Table)2、散列函数(Hash函数) 三、HashMap源码1、HashMap继承关系2、HashMap属性3、Node内部类4、红黑树相关4.1、TreeNode内部类4.2、左旋4.3、右旋4.3、树化4.4、插入平衡... 文章目录 一、红黑树1、红黑树的性质2、 红黑树平衡操作3、HashMap中的红黑树 二、散列(Hash)1、 散列表(Hash Table)2、散列函数(Hash函数) 三、HashMap源码1、HashMap继承关系2、HashMap属性3、Node内部类4、红黑树相关4.1、TreeNode内部类4.2、左旋4.3、右旋4.3、树化4.4、插入平衡...
- 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 示例: s = "abaccdeff" 返回 "b" s = "" 返回 " " 限制: 0 <= s 的长度 <= 50000 思路:map记录次数,再次遍历找出次数1的。 class Solution { public char firstUniqC... 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 示例: s = "abaccdeff" 返回 "b" s = "" 返回 " " 限制: 0 <= s 的长度 <= 50000 思路:map记录次数,再次遍历找出次数1的。 class Solution { public char firstUniqC...
- 不使用运算符 + 和 - ,计算两整数 a 、b 之和。 示例 1: 输入: a = 1, b = 2 输出: 3 示例 2: 输入: a = -2, b = 3 输出: 1 思路:模拟加法器 二进制不考虑进位:0+0=0,0+1=0,1+1=0,是异或 二进制进位单独算:0+0=0,0+1=0,1+1=1,是与 class Solu... 不使用运算符 + 和 - ,计算两整数 a 、b 之和。 示例 1: 输入: a = 1, b = 2 输出: 3 示例 2: 输入: a = -2, b = 3 输出: 1 思路:模拟加法器 二进制不考虑进位:0+0=0,0+1=0,1+1=0,是异或 二进制进位单独算:0+0=0,0+1=0,1+1=1,是与 class Solu...
- 动态规划 Dynamic Programming DP 准则 动态规划的本质,是对问题状态的定义和状态转移方程的定义。 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。 如何拆分问题,才是动态规划的核心。 而拆分问题,靠的就是状态的定义和状态转移方程的定义。 以LIS为例... 动态规划 Dynamic Programming DP 准则 动态规划的本质,是对问题状态的定义和状态转移方程的定义。 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。 如何拆分问题,才是动态规划的核心。 而拆分问题,靠的就是状态的定义和状态转移方程的定义。 以LIS为例...
- 116. 填充每个节点的下一个右侧节点指针 难度中等128 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右... 116. 填充每个节点的下一个右侧节点指针 难度中等128 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右...
- 销售表 Sales: +-------------+-------+ | Column Name | Type | +-------------+-------+ | sale_id | int | | product_id | int | | year &... 销售表 Sales: +-------------+-------+ | Column Name | Type | +-------------+-------+ | sale_id | int | | product_id | int | | year &...
- 比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 你可以假设版本字符串非空,并且只包含数字和 . 字符。 ... 比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 你可以假设版本字符串非空,并且只包含数字和 . 字符。 ...
- 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 思路:搜索回溯经典题 class Solution { int[] visit... 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 思路:搜索回溯经典题 class Solution { int[] visit...
- 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 ... 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 ...
- 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。 当给定的数组 A 是单调数组时返回 true,否则返回 false。 示例 1: 输入:[1,2,2,... 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。 当给定的数组 A 是单调数组时返回 true,否则返回 false。 示例 1: 输入:[1,2,2,...
- 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:... 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:...
上滑加载中
推荐直播
-
华为云师资培训——《大数据》课程
2025/08/12 周二 15:00-17:00
贺行简-DTSE开发者技术专家 吕晨-DTSE开发者技术专家
华为云师资培训直播,带您掌握产业级大数据课程体系与华为开发者空间实战能力,助力高校数字化转型!
回顾中
热门标签