摘要: 题目描述 让我们一起来玩扫雷游戏! 给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖 阅读全文
posted @ 2020-08-20 11:52 小胖子不哭要站* 阅读(98) 评论(0) 推荐(0)
摘要: 题目描述 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 题解 本题和子集这道题基本一样,只是会多加两步,排序和判断当前节点与前一个节点是否相等。 代码 class Solution { List<List<Integer>>res= 阅读全文
posted @ 2020-08-20 11:51 小胖子不哭要站* 阅读(83) 评论(0) 推荐(0)
摘要: 题目描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 题解 这类题的通用解法就是回溯,回溯算法的通用解法: res=[] def backtrack(nums,start,path)//(选择列表,选择开始位置,选择的路径) if 满 阅读全文
posted @ 2020-08-20 11:49 小胖子不哭要站* 阅读(95) 评论(0) 推荐(0)
摘要: 题目描述 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 题解 计算有多少个回文子串最简单的方法就是枚举出所有回文子串。而枚举出所有回文子串有两种方法: 枚举出所有的子串,然后判断是否是回文串 枚举每一个 阅读全文
posted @ 2020-08-20 11:48 小胖子不哭要站* 阅读(166) 评论(0) 推荐(0)
摘要: 题目描述 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。 为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个 阅读全文
posted @ 2020-08-20 11:46 小胖子不哭要站* 阅读(105) 评论(0) 推荐(0)
摘要: 题解 方法一: 对于二叉搜索树,如果进行中序遍历,那么得到的序列是有序的,如果有两个节点交换了,那么就是无序的,我们只需要找出这两个节点所在的位置然后交换值就好了。 先来看看交换两个值会发生什么。对于递增序列a=[1,2,3,4,5] 如果交换不相邻的数字,例如swap(a[1],a[3]),那么a 阅读全文
posted @ 2020-08-08 17:49 小胖子不哭要站* 阅读(237) 评论(0) 推荐(0)
摘要: 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金 阅读全文
posted @ 2020-08-05 19:38 小胖子不哭要站* 阅读(61) 评论(0) 推荐(0)
摘要: 题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 思路 关于二叉树的镜像问题,其实只需要先序遍历交换左右子树即可,后序遍历也可以,但是中序遍历不行,如果只是输出,而不改变树的实际结构,只需要在先序遍历时先访问右子树再访问左子树即可。 代码 class Solution { public: 阅读全文
posted @ 2020-06-18 11:17 小胖子不哭要站* 阅读(59) 评论(0) 推荐(0)
摘要: 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 思路 对于一个后序序列来说,最后一个元素就是根节点,根节点的左子树节点值都小于根节点,并且小于右子树的节点值,因为是BST,这样,遍历序列,找到 阅读全文
posted @ 2020-06-18 11:15 小胖子不哭要站* 阅读(39) 评论(0) 推荐(0)