搜索
error0318
这个作者很懒,什么都没留下…
展开
-
LeetCode 538. 把二叉搜索树转换为累加树
题目链接:LeetCode 538. 把二叉搜索树转换为累加树题意:给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 原始二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / \ .原创 2020-09-21 09:35:47 · 102 阅读 · 0 评论 -
LeetCode 78. 子集
题目链接:LeetCode 78. 子集题意:给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []] 解题思路: 直接dfs就可以class Solution {private: vector<vector&l...原创 2020-09-20 08:23:38 · 133 阅读 · 0 评论 -
LeetCode 404. 左叶子之和
题目链接:LeetCode 404. 左叶子之和题意:计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 解题思路: 就正常的dfs或者bfs,判断是否为叶子节点,如果是左节点,就加上他的值DFS/** * Definition for a binary tree node. * struct TreeNode { * ...原创 2020-09-19 20:42:18 · 82 阅读 · 0 评论 -
LeetCode 47. 全排列 II
题目链接:LeetCode 47. 全排列 II题意:给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]解题思路: 对于条件,还是要判断,确保数字只使用过一次,还要保证class Solution {private: vector<vector<int>> ans; int n;public: void d..原创 2020-09-18 12:50:12 · 81 阅读 · 0 评论 -
LeetCode 46. 全排列
题目链接:LeetCode 46. 全排列题意:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 解题思路: 直接dfs,不用额外判断class Solution {private: vector<vector<int>> ans; int ...原创 2020-09-18 12:39:23 · 114 阅读 · 0 评论 -
LeetCode 37. 解数独
题目链接:LeetCode 37. 解数独题意: 编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。解题思路: dfs递归查找,需要记录某一行出现的数字,某一列出现的数字,某个块中出现的数字。如果出现过,标记true。然后依次查询,如果不满足,就重新,标记为false...原创 2020-09-15 21:41:00 · 132 阅读 · 0 评论 -
LeetCode 94. 二叉树的中序遍历
题目链接:LeetCode 94. 二叉树的中序遍历给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]解题思路: 递归的方式,进行中序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode...原创 2020-09-14 21:05:57 · 85 阅读 · 0 评论 -
LeetCode 79. 单词搜索
题目链接:LeetCode 79. 单词搜索题意: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "..原创 2020-09-13 10:09:21 · 122 阅读 · 0 评论 -
LeetCode 637. 二叉树的层平均值
题目链接:LeetCode 637. 二叉树的层平均值题意: 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。解题思路: BFS模板/** * Definition for a binary tree no...原创 2020-09-12 07:43:58 · 103 阅读 · 1 评论 -
LeetCode 216. 组合总和 III
题目链接:LeetCode 216. 组合总和 III题意: 找出所有相加之和为n的k个数的组合。组合中只允许含有 1 -9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。 解集不能包含重复的组合。解题思路: dfs深度搜索就行,做好限制条件class Solution {public: vector<vector<int>> ans; vector<int> path; void dfs...原创 2020-09-11 08:06:39 · 169 阅读 · 0 评论 -
滴滴出行2017秋招笔试真题-编程题汇总 [编程题]地下迷宫
题意: 给定一个二维数组,0表示障碍,1表示路,剩余体力为 p ,向下走不消耗体力,水平走消耗1体力,向上走消耗3体力,问剩余的体力能否让小青蛙从 [0 , 0]走到[0,m-1]这个点,如果能,输出消耗体力最短的路径解题思路: 就dfs深度搜索就行,但是需要注意的是,并不是向左右向下,向上的优先级相同,因为从[0, 0]点开始走,所以,向右走是必须的,优先级最高,然后是向下走,因为不消耗体力,其次向左,消耗体力较少,最后是向上分析出来:上代码#include <bit...原创 2020-09-10 20:50:08 · 284 阅读 · 0 评论 -
LeetCode 40. 组合总和 II
题目链接:40. 组合总和 IILeetCode 40. 组合总和 II题意: 给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。解题思路: 和39题思路相同,处理多加一个限制条件,如果按顺序取,下一个和当前重复,跳过class Solution {p...原创 2020-09-10 08:17:49 · 98 阅读 · 0 评论 -
LeetCode 257. 二叉树的所有路径
题目链接:LeetCode 257. 二叉树的所有路径题意: 给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3解题思路: 就DFS模板吧,/** * Definition for a binary...原创 2020-09-09 15:34:51 · 173 阅读 · 0 评论 -
LeetCode 39. 组合总和
题目链接:LeetCode 39. 组合总和题意: 给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]解...原创 2020-09-09 14:54:05 · 97 阅读 · 0 评论 -
LeetCode 107. 二叉树的层次遍历 II
题目链接:LeetCode 107. 二叉树的层次遍历 II题意: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]解题思路: 采用bfs宽度优先搜索/** *...原创 2020-09-08 16:15:16 · 92 阅读 · 0 评论 -
LeetCode 77. 组合
写算法,我还是用c++.....题目链接:LeetCode 77. 组合题意: 给定两个整数n和k,返回 1 ...n中所有可能的k个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解题思路: 使用dfs,进行深度搜索。 重点剪枝,因为 [1,2] 和[2, 1] 相同,所以保证后面的数大于前面的数即可class So...原创 2020-09-08 09:51:43 · 96 阅读 · 1 评论 -
LeetCode 332. 重新安排行程
题目链接:LeetCode 332. 重新安排行程题意: 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码..原创 2020-08-28 08:28:21 · 131 阅读 · 1 评论 -
LeetCode 17. 电话号码的字母组合
题目链接:LeetCode 17. 电话号码的字母组合题意: 给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。解题思路: 使用深度优先搜索或者广度优先搜索都可以我是用广度优先搜索class Solution { /** * @param String $digits * @return String[] */ function ...原创 2020-08-26 14:50:09 · 180 阅读 · 0 评论 -
LeetCode 111. 二叉树的最小深度
题目链接:LeetCode 111. 二叉树的最小深度题意: 给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。解题思路: 使用BFS查看层次/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * publ...原创 2020-08-21 08:12:11 · 156 阅读 · 1 评论 -
LeetCode 733.图像渲染
题目链接:LeetCode 733.图像渲染题意: 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标(sr, sc)表示图像渲染开始的像素值(行 ,列)和一个新的颜色值newColor,让你重新上色这幅图像。 为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程...原创 2020-08-16 16:23:37 · 146 阅读 · 1 评论 -
LeetCode 1553.吃掉N个橘子的最少天数
题目链接:LeetCode 5490.吃掉N个橘子的最少天数题意:厨房里总共有 n个橘子,你决定每一天选择如下方式之一吃这些橘子:吃掉一个橘子。如果剩余橘子数 n能被 2 整除,那么你可以吃掉 n/2 个橘子。如果剩余橘子数n能被 3 整除,那么你可以吃掉 2*(n/3) 个橘子。每天你只能从以上 3 种方案中选择一种方案。请你返回吃掉所有 n个橘子的最少天数解题思路: 从别人那里学到的记忆化搜索(本来以为是DP,看了数据觉得是贪心....)能除3就...原创 2020-08-16 15:34:53 · 437 阅读 · 0 评论 -
迷宫路径 POJ 3984 宽度搜索算法 bfs
原题 迷宫问题题意int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,}; 0 代表可以走 ,1 代表障碍 。只有4个方向可以走Input 一个5 × 5的二维数组,...原创 2018-08-02 21:11:57 · 157 阅读 · 0 评论 -
Catch The Cow 抓住牛 POJ 3278 宽度优先算法
原题 Catch The Cow题意 从初始位置,可以向 前走一步,向后走一步,向前跳2倍的距离,问最少几步走到最终位置。Input 输入包含多组数据。每组数据占一行,包含两个整数a和b,表示起始坐标和目的地坐标。(0 ≤a,b≤100000)Output 对于每组输入,输出一个整数,到达目的地的最少步数。Sample Input5 ...原创 2018-08-02 20:55:41 · 297 阅读 · 0 评论 -
Red and Black 红与黑 POJ 1979 深度搜索算法
原题 Red and Black题意: 只走黑砖,不走红砖,最多能走多少 黑砖。 有一个长方形的房间,覆盖了正方形的磁砖。每块磁砖的颜色,要么是红色,要么是黑色。一名男子站在一块黑色的磁砖上。他 可以从一块磁砖移至相邻四块磁砖中的某一块。但是,他不允许在红色磁砖上移动,他只允许在黑色磁砖上移动。输入输入由多个数据集组成。数据集的起始行包含了两个正...原创 2018-08-02 20:32:52 · 1045 阅读 · 0 评论 -
Oil Deposits 油井 HDU 1241 深度优先算法
原题 Oil Deposits题意: 如果蕴藏石油的小方格相邻,那么它们被认为是同一油藏的一部分。确定有多少块。Input 可能有多个矩形区域(即可能有多组测试)。每个矩形区域的起始行包含m和n,表示行和列的数量,1<=n,m<=100,如果m =0表示输入的结束,接下来是n行,每行m个字符。每个字符对应一个小方格...原创 2018-08-02 20:17:20 · 219 阅读 · 0 评论 -
2019牛客暑期第二场 F .Partition problem(dfs)
题意 输入n,然后输入2*n , 2*n的矩阵,a[i][j] 代表 i 和 j 的竞争值,将其分为两队,求最大竞争值题解 以n等于2举例 ,那么有4个人,分为两队, 假设1和2一队,那么3和4自动为一队所以,当第一组确定后,第二组自定确定#include<bits/stdc++.h>using namespace std;typedef long l...原创 2019-08-08 10:51:18 · 107 阅读 · 0 评论 -
2019牛客多校第四场 A.meeting
题意 : n个节点,有k个人,求k个人到某一个节点的最短时间题解: 考虑距离最远的两个关键点,设它们的距离为d,d/2上取整即为答案。必要性:这两个人要碰面,必然要走至少d/2步。充分性:我们取两人路径中和一头距离为d/2上取整的一个点,让所有人在这相聚。如 果有一个人在d/2时间内到不了,那么它和路径两头中与它远的那一头的距离大于d,与 最远的假设矛盾。从任意一个...原创 2019-08-13 11:55:30 · 157 阅读 · 0 评论 -
变形课 HDU 1181 深度搜索算法 是否可达
原题 : 变 形 课题意 abcde会使 a 变为 e,cdas会使 c 变 s, 首字母变成末字母Input 输入字符串,每行一个,以0结束 有多组输入数据Output 如果可以把: b 变成 m ,就输出"Yes.",否则就输出"No."(不要忽略了句号)Sample Input so ...原创 2018-08-02 21:33:59 · 168 阅读 · 0 评论