随笔分类 - 算法
1
摘要:LeetCode链接 45. 跳跃游戏 II 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处: 0 <= j <= n
阅读全文
摘要:题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。 输入描述 输
阅读全文
摘要:一.有效的字母异位词 力扣题目链接(opens new window) 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t =
阅读全文
摘要:哈希表介绍 哈希表是一种随机存储结构,可以通过关键码来直接访问对应的数 数组就是一种简单的哈希表,数组的下标就是关键码,我们可以通过数组的下标来直接访问数组中的元素 通常,哈希表用来解决检查一个数是否在一个集合里,例如,查询数组中是否存在某个数,再或者,查询一个人的名字是否在名单中,我们查询的时候,
阅读全文
摘要:本次记录代码随想录的链表部分的学习 一.移除链表元素 力扣题目链接(opens new window) 题意:删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [
阅读全文
摘要:一.二分查找 力扣题目链接 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4
阅读全文
摘要:微博被称为中文版的 Twitter。 微博上的用户既可能有很多关注者,也可能关注很多其他用户。 因此,形成了一种基于这些关注关系的社交网络。 当用户在微博上发布帖子时,他/她的所有关注者都可以查看并转发他/她的帖子,然后这些人的关注者可以对内容再次转发… 现在给定一个社交网络,假设只考虑 L 层关注
阅读全文
摘要:或许你并不知道,你的某个朋友是你的亲戚。 他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。 如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。 在这种情况下,最好的帮手就是计算机。 为了将问题简化
阅读全文
摘要:1.题目描述每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。 例如,如果她将数字 14 转换为二进制数,那么正确的结果应为 1110,但她可能会写下 0110 或 1111。 贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导 0 的数字。 给定贝茜将
阅读全文
摘要:【题目描述】一个二叉树,树中每个节点的权值互不相同。现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。 【输入格式】第一行包含整数N ,表示二叉树的节点数。第二行包含N 个整数,表示二叉树的后序遍历。第三行包含N 个整数,表示二叉树的中序遍历。 【输出格式】输出一行N NN个整数,表示二叉树的层
阅读全文
摘要:题目描述农夫约翰出门沿着马路散步,但是他现在发现自己可能迷路了! 沿路有一排共 N 个农场。 不幸的是农场并没有编号,这使得约翰难以分辨他在这条路上所处的位置。 然而,每个农场都沿路设有一个彩色的邮箱,所以约翰希望能够通过查看最近的几个邮箱的颜色来唯一确定他所在的位置。 每个邮箱的颜色用 A..Z
阅读全文
摘要:1143.最长公共子序列 力扣题目链接(opens new window) 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字
阅读全文
摘要:LeetCode链接 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums = [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2: 输入:nums
阅读全文
摘要:LeetCode链接 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n = 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 输入: n = 10 输出: 36
阅读全文
摘要:小朋友崇拜圈班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。在一个游戏中,需要小朋友坐一个圈,每个小朋友都有自己最崇拜的小朋友在他的右手边。求满足条件的圈最大多少人? 小朋友编号为1,2,3,…N输入第一行,一个整数N(3<N<100000)接下来一行N个整数,由空格分开。 要求输
阅读全文
摘要:问题描述小明冒充 X 星球的骑士,进入了一个奇怪的城堡,城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 n x n 个方格,如图所示。 按习俗,骑士要从西北角走到东南角,可以横向或纵向移动,但不能斜着走,也不能跳跃。 每走到一个新方格,就要向正北方和正西方各射一箭。(城堡的西墙和北墙内
阅读全文
摘要:你有一张某海域NxN像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。 由于全球变暖导致了海面上升,科
阅读全文
摘要:题目 小蓝在一个 n 行 m 列的方格图中玩一个游戏。 开始时,小蓝站在方格图的左上角,即第 1 行第 1 列。 小蓝可以在方格图上走动,走动时,如果当前在第 r 行第 c 列,他不能走到行号比 r 小的行,也不能走到列号比 c 小的列。同时,他一步走的直线距离不超过 3。 例如,如果当前小蓝在第
阅读全文
摘要:广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历算法这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果
阅读全文
摘要:拓扑排序是一种图论算法,它用于对有向无环图(DAG)进行排序。该算法的目的是找到图中所有顶点的线性排列,使得对于图中的任意两个顶点 u 和 v,如果存在一条从 u 到 v 的边,那么在排列中 v 出现在 u 的后面。 拓扑排序的解决思路为 1.从 DAG 图中选择一个 没有前驱(即入度为0)的顶点并
阅读全文
1