2、剑指 Offer 05. 替换空格 (1) 暴力解法:重新定义一个string,遇到空格 string +=“%20” (2) 快慢指针:s.resize(s.size() + 2*cnt), 在原本的s上倒序进行修改 3、剑指 Offer 06. 从尾到头打印链表 (1) 暴力解法:反转result数组 (2) 栈: 先进后出的特性 (3) 递归: 递归到最后,回溯的过程中...
[leetcode刷题]——剑指offer 此篇博客主要记录剑指offer中遇到的不会的题。 一、重建二叉树(剑指offer 07) medium 2021-06-22 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 解题思路:前序遍历的特点,根节点在第一位; 中序遍历的特点,...
假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表...
我们先来看leetcode上第1号问题:Two Sum:给定一个整数数组和一个目标值,找出数组中和为目标值的两...
LeetCode& 剑指Offer:验证二叉搜索树、二叉搜索树中的众数(中序遍历方法) LeetCode 98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。
003 数组中重复的数字 长度为 n 的数组中,所有元素的范围为 0 \sim n - 1,其中有某些元素是重复的,寻找出其中一个重复的数字。 集合类解法:找重复的使用 Set 即可,如果数据量过大使用 BitMap,数据量小使用 HashSet 或者布尔数组都可以。但空间复杂度都是 O(N)。 元素
11旋转数组的最小数字二分查找注意数组可能有相同的值,PS:二分判断的时候if条件顺序改变会影响耗时https://leetcode-cn.com/submissions/detail/144108336/ 12矩阵中的路径bfs/dfs注意使用mask记录访问会超时,用个临时字符改变board,dfs完成后再复原https://leetcode-cn.com/submissions/detail/145286677/ ...
leetcode 剑指offer小结 栈与队列剑指Offer 09. 用两个栈实现队列使用两个堆栈,一个输出栈,另一个输入栈。队列入队:直接将元素压入输入栈,队列出队:如果输出栈为空,将输入栈元素压入输出栈,再将输出栈元素出栈。查看代码 class CQueue { private Stack<Integer> inputStack; private Stack<Integer> output...
【手把手带你刷LeetCode】——16.剑指offer之二叉树的最大深度(DFS),【前言】今天是力扣打卡第16天!一转眼就半个月过去了呀,时间过得真是贼快,加油加油,不进则退啦!原题给定一个二叉树,找出其最大深度。.
publicclass剪绳子II_offer2{classSolution{publicintcuttingRope(int n){// 使用循环取余数法计算 // x * y % p == ((x%p)*(y%p))%p if (n <= 3) return n -1; long rem = 1; int a = n / 3, b = n % 3, p = 1000000007; int run = b == 1 ? a - 1 : a; for (int...