03 2021 档案
摘要:问题: 给定有0和1构成的二维数组, 求数组中,连续 1 构成正方形的面积最大是多少。 Example 1: Input: matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1&quo
阅读全文
摘要:问题: 给定字符串s,和词典wordDict 若s可拆分成多个子串,存在于词典中,则返回true。否则返回false。 Example 1: Input: s = "leetcode", wordDict = ["leet","code"] Output: true Explanation: Ret
阅读全文
摘要:问题: 给定一个数组,求任意区间[left, right]的元素和。 Example 1: Input ["NumArray", "sumRange", "sumRange", "sumRange"] [[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]]
阅读全文
摘要:问题: 给定3个字符串, 由s1和s2构成s3。 若可以做到,返回true,否则返回false。 Example 1: Input: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac" Output: true Example 2: Input: s1 = "
阅读全文
摘要:问题: 求从0 到 小于给定n 的正整数中,有多少个素数(质数)。 素数:只能被 自己 和 1 整除。(1和0不是) Example 1: Input: n = 10 Output: 4 Explanation: There are 4 prime numbers less than 10, the
阅读全文
摘要:问题: 求有多少个数的阶乘结果,末尾含有K个0的。 Example 1: Input: K = 0 Output: 5 Explanation: 0!, 1!, 2!, 3!, and 4! end with K = 0 zeroes. Example 2: Input: K = 5 Output:
阅读全文
摘要:问题: 求给定n的阶乘结果中,有多少个0。 Example 1: Input: n = 3 Output: 0 Explanation: 3! = 6, no trailing zero. Example 2: Input: n = 5 Output: 1 Explanation: 5! = 120
阅读全文
摘要:问题: 给定1~n个节点,构成(前序,中序,后序,其中任意一种)遍历的序列, 求可构成的二叉树的种类个数。 Example 1: Input: n = 3 Output: 5 Example 2: Input: n = 1 Output: 1 Constraints: 1 <= n <= 19 ex
阅读全文
摘要:问题: 给定1~n个节点,(根据1~n构成<前序,中序,后序,其中一种>遍历序列,求可构成的二叉树种类) 令这些节点构成二叉树,求所能构成的所有(不重复)二叉树。 Example 1: Input: n = 3 Output: [[1,null,2,null,3],[1,null,3,2],[2,1
阅读全文
摘要:问题: 给定由0~9构成的编码字符串。 编码前, 'A' -> "1" 'B' -> "2" ... 'Z' -> "26" 按照以上方法进行编码。 求编码前的字符串组合的可能数。 Example 1: Input: s = "12" Output: 2 Explanation: "12" coul
阅读全文
摘要:问题: 给定一组数,其中每个数字都出现2次, 只有一个数字出现了一次。求这个数字。 Example 1: Input: nums = [2,2,1] Output: 1 Example 2: Input: nums = [4,1,2,1,2] Output: 4 Example 3: Input:
阅读全文
摘要:问题: 求给定数是否为2的幂。 Example 1: Input: n = 1 Output: true Explanation: 20 = 1 Example 2: Input: n = 16 Output: true Explanation: 24 = 16 Example 3: Input:
阅读全文
摘要:问题: 给定32位无符号整型数 uint32_t n 求该数中1出现的次数。 Example 1: Input: n = 00000000000000000000000000001011 Output: 3 Explanation: The input binary string 000000000
阅读全文
摘要:1.算法运算: 1.1. 获得最低非0位: 1 //获取x的最低1位。 2 //e.g. 6 = 0110 3 //获得 2 = 10 4 // x=0110, -x=(~x+1)=(1001+1)=1010 5 // x&(-x) = 0110 & 1010 = 0010 6 int lowbit
阅读全文
摘要:问题: 求给定的两个字符串S1和S2是否 S1能经过以下变换得到S2。 若字符串长度为1,直接返回。 从任意index,进行切分,pre和post两部分, 可以选择:是否对这两部分进行交换。 然后,再将分割后的两部分,分别作为对象字符串,重复上述两个操作。 Example 1: Input: s1
阅读全文
摘要:问题: 给定由 "(" 和 ")" 构成的字符串, 求其中完全匹配的子串,最长长度为多少。 Example 1: Input: s = "(()" Output: 2 Explanation: The longest valid parentheses substring is "()". Exam
阅读全文
摘要:问题: 爬楼梯问题。 给定n阶台阶,一次可以爬一阶or两阶。 求一共有多少种爬楼梯的方法。 Example 1: Input: n = 2 Output: 2 Explanation: There are two ways to climb to the top. 1. 1 step + 1 ste
阅读全文
摘要:问题: 给定n*m二维数组代表陆地和海洋。 1:海洋 0:陆地 对这个地图,进行高度赋值。 规定海洋高度一律为0。 相邻两个cell的高度差不能超过 1。(可以为 0 or 1) 那么要使map上获得最高高度。 求所得到地图高度。 Example 1: Input: isWater = [[0,1]
阅读全文
摘要:问题: 给定一个由0~9构成的字符串s 对其有两种操作: 偶数位置+a(超过9,则从0开始循环) 例:if s = "3456" and a = 5, s becomes "3951". 字符串向后移动 b位(后面的字符循环到字符串前部) 例:if s = "3456" and b = 1, s b
阅读全文
摘要:问题: 给定一棵以0为root的树, 给定 该树的节点连接关系。 每个节点上标记的字母。 求以各个节点为root的子树中,拥有和该节点标记字母相同节点的个数。 Example 1: Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]]
阅读全文
摘要:问题: 给定一个n*m数组,代表公路。 1:连接 left + right 2:连接 up + down 3:连接 left + down 4:连接 right + down 5:连接 left + up 6:连接 right + up 求是否能够从左上角格子(0,0)到达,右下角(n-1,m-1)
阅读全文
摘要:问题: 给定两棵二叉树。 原二叉树original 拷贝二叉树cloned 以及原二叉树上的节点target 求拷贝二叉树上同一个位置的节点。 Example 1: Input: tree = [7,4,3,null,null,6,19], target = 3 Output: 3 Explanat
阅读全文
摘要:问题: 给定n个节点,和节点之间的连线关系connections。 若其中有多余的连线,可用于连接任意不相连的节点,使得所有节点相连。 求若可以,至少需要多少条连线。 不可以,返回-1。 Example 1: Input: n = 4, connections = [[0,1],[0,2],[1,2
阅读全文
摘要:问题: 朋友看视频问题。 给定一个朋友关系网, friends[i]表示 i 的朋友们。 watchedVideos[i]表示 i 所看的视频。 level表示朋友层,1:代表i的朋友,2:代表i的朋友的朋友。 求给定人 i 的朋友层level,所看过的所有视频。(按照视频被看的人数从少到多排序)
阅读全文
摘要:问题: 求给定二叉树中,x节点和y节点是否为表兄弟关系。 表兄弟关系为:在同一层&&父节点不同。 Example 1: Input: root = [1,2,3,4], x = 4, y = 3 Output: false Example 2: Input: root = [1,2,3,null,4
阅读全文
摘要:问题: 跳棋问题。 给定跳棋一维数组arr arr[i]代表到达位置 i 后,能够向前or向后移动的步数 即,下一个位置为:i+arr[i] or i-arr[i] ⚠️ 注意:这里下个位置不能超出arr范围。 求从给定Start位置开始,是否能最终走到arr[x]==0的位置。 Example 1
阅读全文
摘要:问题: 一个虫子在x坐标的0位置出发, 求最少跳多少次能跳到x位置。 跳动规则: 不能跳到forbidden所示的位置 每次可向前跳 a 个距离。 每次可向后跳 b 个距离。不能连续向后跳两次。 不能跳到<0的坐标位置。 Example 1: Input: forbidden = [14,4,18,
阅读全文
摘要:问题: 给定n个节点,和节点之间的连线关系,构成有向图。 红线 red_edges:[a,b]: a->b 蓝线 blue_edges:[a,b]: a->b 求从节点0,到各个节点(红蓝线交替)的最短距离。 若对于某个节点不存在这样的通路,那么该节点的结果为-1。 Example 1: Input
阅读全文
摘要:问题: 给定一棵树,root=0 每个节点id有值nums[id] 求每个节点的所有祖先中,最近&&与其值互质的父节点。 Example 1: Input: nums = [2,3,3,2], edges = [[0,1],[1,2],[1,3]] Output: [-1,0,0,1] Explan
阅读全文
摘要:问题: 给定n*m二维数组grid,要求从左上角(0,0)->右下角(n-1,m-1) 移动规则:grid[i][j] 1:right -> grid[i][j + 1] 2:left -> grid[i][j - 1] 3:down -> grid[i + 1][j] 4:up -> grid[i
阅读全文
摘要:问题: 跳棋游戏。 在一维数组arr中,从index=0开始, 下一步可以跳到:(在数组范围内) index+1 index-1 index_j : arr[index_j]=arr[index] 求最快跳到最后一格arr.size()-1的位置,需要多少步。 Example 1: Input: a
阅读全文
摘要:问题: 给定n个box: status[i]: 1:box[i] 打开,0:box[i] 关闭 candies[i]: box[i]里装有的糖个数 keys[i]: 装有的其他box钥匙的index(数组) containedBoxes[i]: 装有的其他box的index(数组) 关闭的box,只
阅读全文
摘要:问题: 给定n*m由0和1构成的二维数组。 0代表通路 1代表障碍 求从左上角格子(0,0)出发,要到达右下角格子(n-1,m-1) 可以最多遇到 k 个障碍,至少需要多少步能到达。 若不能做到,返回-1。 Example 1: Input: grid = [[0,0,0], [1,1,0], [0
阅读全文
摘要:问题: 给定m*n由0和1构成的二维数组, 对其中某个元素进行反转flip:0->1 or 1->0 那么其相邻的元素也会相应发生反转。 求,最终使得二维数组全为0需要最少几步? 若不能做到,返回-1。 Example 1: Input: mat = [[0,0],[0,1]] Output: 3
阅读全文
摘要:问题: 推箱子问题。 给定n*m二维数组: . -> 通路 T -> 箱子目标位置 B -> 箱子当前位置 S -> 人当前位置 # -> 障碍(墙)位置 人S去推箱子B,使得箱子到达目标位置T,箱子最少移动多少步? Example 1: Input: grid = [["#","#","#","#
阅读全文
摘要:问题: 给定n*n二维数组,要从(0,0)->(n-1,n-1) 0:通路 1:障碍 求最少多少步能到达。 可以走当前格子的8个方向。 Example 1: Input: grid = [[0,1],[1,0]] Output: 2 Example 2: Input: grid = [[0,0,0]
阅读全文
摘要:问题: 给定n*n二维数组, 0代表海水,1代表陆地, 求离陆地最远的海水cell,距离陆地多远。 Example 1: Input: grid = [[1,0,1],[0,0,0],[1,0,1]] Output: 2 Explanation: The cell (1, 1) is as far
阅读全文
摘要:问题: 给定由0和1构成的n*n二维数组,表示迷宫。 0代表通路,1代表障碍。 长度为2的蛇, 初始状态在第一行的前两个格子(0,0)<蛇尾>(0,1)<蛇头> 最终要到达最后一行的最后两个格子(n-1,n-2)<蛇尾>(n-1,n-1)<蛇头> 求最少走多少步能到。 移动选项: 向右移动一格:蛇头
阅读全文
摘要:问题: 给定二叉树, 求层元素和为最大的最小层数。 Example 1: Input: root = [1,7,0,7,-8,null,null] Output: 2 Explanation: Level 1 sum = 1. Level 2 sum = 7 + 0 = 7. Level 3 sum
阅读全文
摘要:问题: 给定n*n二维数组, 1代表陆地,0代表海洋。 上下左右为相连,那么相连的 1 构成岛屿, 那么给定的数组共构成两个岛屿, 求填海,最少填多少个cell能够将两个岛屿相连。 Example 1: Input: A = [[0,1],[1,0]] Output: 1 Example 2: In
阅读全文
摘要:问题: 给定坐标系:(0,0)~(10^6,10^6) 起点坐标:source(x,y) 目标坐标:target(x,y) 障碍物坐标list:block 求是否能从起点坐标,到目标坐标。 (遇到障碍物,无法继续前进) Example 1: Input: blocked = [[0,1],[1,0]
阅读全文
摘要:问题: 给定n*n的二维数组, board[i][j]:每个格子代表,到达该格子后的下一个位置。 ⚠️ 注意:位置标记:从最后一行第一个开始,标记为 1 开始,成Z字形向上,依次递增。直到第一行第一个格子位置为 n*n。 若board[i][j] 1,(假设当前位置标记为x)那么它的下一个位置可以为
阅读全文
摘要:问题: 给定N叉树,求该树的最大深度。 Example 1: Input: root = [1,null,3,2,4,null,5,6] Output: 3 Example 2: Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10
阅读全文
摘要:问题: 给定二叉树, root坐标为(0,0), 对于任意节点 (x,y), 其左孩子(x+1, y-1), 右孩子(x+1, y+1) 按照列输出节点。(从左到右,对于每一列,从上到下) 若多个节点坐标相同,则按照值从小到大进行输出。 Example 1: Input: root = [3,9,2
阅读全文
摘要:问题: 给定一个无向图,节点0~N-1 mouse:从1出发-> 到达 0,win -> return 1 cat:从2出发-> 到达mouse的当前位置,win(不能走 0 节点)-> return 2 若两者都无法win,且走完所有的节点,那么平局 tie。-> return 0 ⚠️ 注意:
阅读全文
摘要:问题: 给定一棵二叉树, 求距离root最远距离d,所有节点所在的公共父节点。 Example 1: Input: root = [3,5,1,6,2,0,8,null,null,7,4] Output: [2,7,4] Explanation: We return the node with va
阅读全文
摘要:问题: 给定一个无向图,n个节点 每条边可分为0个or多个node, 求从节点0开始,走maxMoves步,总共能经过多少个node。 Example 1: Input: edges = [[0,1,10],[0,2,1],[1,2,2]], maxMoves = 6, n = 3 Output:
阅读全文
摘要:问题: 给定一个迷宫数组: @:起点 #:墙壁 a~f:key A~F:lock 从起点开始走,遇到key,可以拾得,用于开启后续遇到的lock,(若遇到lock前没有拾得对应key,那么无法通过) 墙壁也无法通过。求要获得所有的key,最少走的步数。 不可能获得所有的key的话,返回-1。 Exa
阅读全文
摘要:问题: 给定一棵二叉树。 求给定节点target开始,距离K的所有节点。 Example 1: Input: root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2 Output: [7,4,1] Explanation: The nodes
阅读全文
摘要:问题: 给定一个字符串A,每次交换其中两个字符, 最后使得到字符串B,求最少交换次数。 Example 1: Input: A = "ab", B = "ba" Output: 1 Example 2: Input: A = "abc", B = "bca" Output: 2 Example 3:
阅读全文
摘要:问题: 给定一个图,graph[i]代表节点 i 相连的各个节点。 求遍历完所有节点,所需要的最小路径花费。 ⚠️ 注意:可以重复经过同一条边or同一个节点。 Example 1: Input: [[1,2,3],[0],[0],[0]] Output: 4 Explanation: One pos
阅读全文
摘要:问题: 给定m*n的二维数组,由0和1构成。 1代表陆地,0代表海洋。 求在任意一个0的位置填上陆地 1,使得获得最大面积陆地,求这个陆地的面积。 Example 1: Input: grid = [[1,0],[0,1]] Output: 3 Explanation: Change one 0 t
阅读全文
摘要:问题: 给定多条bus线路,routes[i]代表 bus i 的所有经停站点。 给定source起始站,和target目标站,求最少换乘几辆车能到达目的地。 Example 1: Input: routes = [[1,2,7],[3,6,7]], source = 1, target = 6 O
阅读全文
摘要:问题: 给定n个地点,以及地点之间的航班和费用。 求从src到dst,中转最多k次以内,花费最少的费用。 Example 1: Input: n = 3, edges = [[0,1,100],[1,2,100],[0,2,500]] src = 0, dst = 2, k = 1 Output:
阅读全文
摘要:问题: 滑动拼图。 给定2*3的一个拼图,有1~5代表每个格子的拼图,0代表空,其他位置的拼图可以滑动到这里。 求给定现在状态的拼图,是否最终能滑动到 1 2 3 4 5 0 的状态。 可以的话,需要最少多少步。 不可以的话,返回-1。 Examples: Input: board = [[1,2,
阅读全文
摘要:转载:转载请注明出处:勿在浮沙筑高台http://blog.csdn.net/luoshixian099/article/details/51908175 一.Prim算法 适用于:边较多时 加点法: 时间复杂度:O(V^2) 在已得最小生成树各个节点,(绿色set:A,C,G) 向外部其他节点的节
阅读全文
摘要:问题: 给定一个无向图,graph[i]={a,b,c...} 代表:节点 i 的邻接节点有 节点 a,b,c... ⚠️ 这里若有graph[a]中包含b,那么graph[b]中也包含a。 求将这个图中的节点分为两个集合, 任意相邻两个节点,都分别位于两个集合中。 是否能行。 Example 1:
阅读全文
摘要:问题: 给定N叉树,将各个节点的值,按【层】构成数组输出。 Example 1: Input: root = [1,null,3,2,4,null,5,6] Output: [[1],[3,2,4],[5,6]] Example 2: Input: root = [1,null,2,3,4,5,nu
阅读全文
摘要:转载:[图的最短路径算法]Dijkstra, Bellman-Ford, Floyd-Warshall 一. Dijkstra算法 ⚠️ 注意:不能解决含有负权的图。 S[v]标记已访问(红色节点):queue.pop后,再标记已访问。 priority_queue优先队列:优先处理最短节点。 di
阅读全文
摘要:问题: 给定n个节点,节点到节点所需要耗费的时间,从给定节点k开始, 最少花多长时间遍历完所有节点。 Example 1: Input: times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2 Output: 2 Example 2: Input: times
阅读全文
摘要:问题: 给定一个由 0 和 1 构成的二维数组。 求每个cell到最近0的距离。 Example 1: Input: [[0,0,0], [0,1,0], [0,0,0]] Output: [[0,0,0], [0,1,0], [0,0,0]] Example 2: Input: [[0,0,0],
阅读全文
摘要:问题: 扫雷问题:给定一个扫雷地图, 包含: M:埋雷cell E:空区cell X:已被挑出的雷cell 1~8:已被扫过的空区cell,该cell四周的埋雷数。 给出扫雷点击坐标click 求,这次click之后的扫雷地图的状态。 变化规则: M:变为X,扫到雷,游戏结束。 E:四周无雷:变为B
阅读全文
摘要:问题: 给定二叉树,求每层最大节点,返回。 Example 1: Input: root = [1,3,2,5,3,null,9] Output: [1,3,9] Example 2: Input: root = [1,2,3] Output: [1,3] Example 3: Input: roo
阅读全文
摘要:问题: 求给定二叉树,最底层最左边的节点值。 Example 1: Input: root = [2,1,3] Output: 1 Example 2: Input: root = [1,2,3,4,null,5,6,null,null,7] Output: 7 Constraints: The n
阅读全文
摘要:问题: 给定一个二维数组,代表一块大陆的海拔, 数组左边和上边为太平洋,右边和下边为大西洋, 对于大陆上的每一个点,有水向海拔=<自己的方向流动,求既能流进太平洋,又能流进大西洋的坐标位置。 Example: Given the following 5x5 matrix: Pacific ~ ~ ~
阅读全文
摘要:问题: 求给定无向图(树),从那个顶点作为root,得到最矮树。 Example 1: Input: n = 4, edges = [[1,0],[1,2],[1,3]] Output: [1] Explanation: As shown, the height of the tree is 1 w
阅读全文
摘要:问题: 给定数字n,求将其分解为多个平方数的和,最少用多少个平方数可以得到。 Example 1: Input: n = 12 Output: 3 Explanation: 12 = 4 + 4 + 4. Example 2: Input: n = 13 Output: 2 Explanation:
阅读全文