凡心所向,素履以往。生如逆旅,一苇以|

Hk_Mayfly

园龄:7年6个月粉丝:340关注:5

随笔分类 -  算法

LeetCode 100.相同的树(C++)
摘要:给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 示例 2: 输出: false 示例 3: 输出: false
299
0
0
LeetCode 257.二叉树所有路径(C++)
摘要:给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 转载:这个会更好理解
579
0
0
LeetCode 112.路径总和(C++)
摘要:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。 使
262
0
0
LeetCode 200.岛屿的个数
摘要:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110110101100000000 输出: 1 示例 2: 输入: 110001100000
255
0
0
岛屿问题求最短路径(DFS)
摘要:用1代表陆地,用0代表陆地,你可以上下左右移动,给出下面这张地图求出最短路径 0101100001101001010110000 类似的下面这种也仅仅是上面的符号变换。 #S######.#......#..#.#.##.##.#.#........##.##.####....#....#.####
831
0
0
LeetCode 110.平衡二叉树(C++)
摘要:给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。示例 2: 给定二叉树 [1,2,2,3,3,null,null
225
0
0
简单深度优先搜索
摘要:#include using namespace std; #define MAX_SIZE 20 using namespace std; static int x = [](){std::ios::sync_with_stdio(false);cin.tie(0);return 0;}(); typedef struct A{ int adj; int *ptr; }...
144
0
0
LeetCode 303.区域检索-数组不可变(accumulate()和for循环差异分析)
摘要:给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 说明: 上面是accumulate()下面是for循环 时间复杂度同是O(n),耗时差这么多。 举个栗子 直接查看汇编代码 首先我怀疑编译器在进行begin()操作或者使用容器时
317
0
0
LeetCode 887.鸡蛋掉落(C++)
摘要:每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。 你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。 每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X
863
0
0
LeetCode 62.不同路径(C++)
摘要:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不
308
0
0
DP:凑零钱问题/最长非降子序列(C++)
摘要:你给出一定数额的钱 i 元给我,我利用手中的硬币(m元, j元, k元...)兑换等值的钱给你,要求硬币数最少。 举例:给出1-11的钱,手中硬币有1元,3元,5元。 重点是找到状态和状态转移方程。 具体可以看这里:点击进入 引用自上面链接: 最终我们要求解的问题,可以用这个状态来表示:d(11),
644
0
0
贪心:背包问题(C++)
摘要:题目:有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。 要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 物品 A B C D E F G 重量 35 30 60 50 40 10 25 价值 10 40 30 50 35 40 30 思想:装性价比最高的物品。
1735
0
0
LeetCode 454.四数相加 II(C++)
摘要:给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。 为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到
358
0
0
LeetCode 222.完全二叉树的节点个数(C++)
摘要:给出一个完全二叉树,求出该树的节点个数。 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例: 我用遍历解的: 先序/中序/后序 层次遍历
374
0
0
LeetCode 704.二分查找(C++)
摘要:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 示例 2: 提示:
188
0
0
LeetCode 441.排列硬币(C++)
摘要:你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 n,找出可形成完整阶梯行的总行数。 n 是一个非负整数,并且在32位有符号整型的范围内。 示例 1: 示例 2:
419
0
0
LeetCode 981.基于时间的键值存储(C++)
摘要:创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作: 1. set(string key, string value, int timestamp) 存储键 key、值 value,以及给定的时间戳 timestamp。 2. get(string key, int timestamp
351
0
0
LeetCode 167.两数之和(C++)
摘要:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以
391
0
0
LeetCode 367.有效的完全平方数(C++)
摘要:给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何内置的库函数,如 sqrt。 示例 1: 示例 2:
587
0
0
LeetCode 860.柠檬水找零(C++)
摘要:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 注意,一开始你手头没有任何零钱。 如
476
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起