11 2023 档案
摘要:目录题目动态规划 题目 动态规划 由于 1,2...n 这个数列是递增的,所以我们从任意一个位置“提起”这课树,都满足二叉搜索树的这个条件:左边儿子数小于爸爸数,右边儿子数大于爸爸数。例如,我要用 [1,2,3,4,5,6] 构建。首先,提起 "2" 作为树根,[1]为左子树,[3,4,5,6] 为
阅读全文
摘要:目录题目题解 题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回
阅读全文
摘要:目录题目题解 题目 题解 画出二维矩阵,找规律,注意输入,输出 n, m = map(int, input().split())#读入n,m a = [] for i in range(n):#读入二维数组 a.append(list(map(int, input().split()))) # a是
阅读全文
摘要:目录题目法一、递归法二、迭代 题目 法一、递归 def fib (n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2) n = int(input()) a=fib(n) b=fib(n+1) print("{:.8f}".format(a/b
阅读全文
摘要:目录题目法一、切片法二、双向链表 题目 法一、切片 s=list(input()) j=0 while j < 2 ** 64: #题目要求的操作次数 pos = set() #集合特性(去重) for i in range(1, len(s) - 1): if s[i] == s[i - 1] a
阅读全文
摘要:目录题目暴力题解 题目 暴力 先暴力把到n的质数存在一个列表里面,如何遍历列表,如果n可以整除该质数就count++,最后返回count m=[] count=0 n=int(input()) for i in range(1,n): if i>1: for j in range(2,int(i**
阅读全文
摘要:目录题目python动态规划优化JavaScript前缀和+暴力动态规划 题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
阅读全文
摘要:目录198. 打家劫舍(中)动态规划优化213. 打家劫舍Ⅱ(中)动态规划337. 打家劫舍Ⅲ(中)动态规划 198. 打家劫舍(中) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯
阅读全文
摘要:目录题目通用模板优化 题目 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 K笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 分析: 状态:天数i、允许交易的最大次数k、当前持有中状态(0
阅读全文
摘要:目录题目动态规划优化 题目 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。 注
阅读全文
摘要:目录题目动态规划改进 题目 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 注意:你不能同时参
阅读全文
摘要:目录题目动态规划 题目 给你一个整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说,你最多可以买 k 次,卖 k 次。 注意:你不能同时参与多笔交易(你必须在再次购买前
阅读全文
摘要:目录题目动态规划优化 题目 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入:prices = [3,3,5,0,0,3,
阅读全文
摘要:目录题目法一、贪心法二、动态规划优化 题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的
阅读全文
摘要:目录题目法一、暴力法二、动态规划 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。1. (1 阶 + 1 阶);2. (2 阶) 示例 2: 输入:n
阅读全文
摘要:目录题目题解 题目 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1: 输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没
阅读全文
摘要:目录题目法一:栈法二:字典 题目 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 示例 1: 输入:s = "()"
阅读全文
摘要:目录题目题解 题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输
阅读全文
摘要:目录题目法一、字符串法二、循环 题目 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入:n = 00000010100101000001111010011100 输出:964176192 (00111001011110000010100101000000) 解释:输入的二进制串 0000
阅读全文
摘要:目录题目题解位运算 题目 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y,计算并返回它们之间的汉明距离。 示例 1: 输入:x = 1, y = 4 输出:2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ..........↑ .. ↑
阅读全文
摘要:目录题目错误解法bin内置函数直接用.count统计直接统计二进制中的每一位是否包含1消除二进制末尾的 1 题目 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。 示例 1: 输入:n = 00000000000000000
阅读全文
摘要:目录题目法一、最笨的办法法二、找到一点规律的解法 题目 罗马数字包含以下七种字符: I(1), V(5), X(10), L(50),C(100),D(500) 和 M(1000) 例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 X
阅读全文
摘要:目录题目法一、迭代法二、递归 题目 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x 示例 1: 输入:n = 27 输出:true 示例 2: 输入:n = 0 输出:f
阅读全文
摘要:目录题目法一、暴力法法二、埃拉托斯特尼筛法(Sieve of Eratosthenes)法三、线性筛法 题目 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 示例 1: 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 示例 2: 输
阅读全文
摘要:目录题目题解 题目 给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中: answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。 answer[i] == "Fizz" 如果 i
阅读全文
摘要:目录题目法一、辅助栈法二、一个栈同时保存当前值和栈内最小值 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void po
阅读全文
摘要:目录题目法一、 Fisher-Yates法二、鸽尾式洗牌法(Riffle Shuffle) 题目 给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是 等可能 的。 实现 Solution class: Solution(int[] nums) 使用整数数
阅读全文
摘要:目录题目题解:二分查找 题目 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本
阅读全文
摘要:目录题目题解、逆序双指针 题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数
阅读全文
摘要:目录题目python题解javascript题解 题目 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 python 题解 题目给出的“有序数列”帮助我们
阅读全文
摘要:目录题目python法一、BFS法二、DFSjavascriptBFS 题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]
阅读全文
摘要:目录DFSBFS DFS 处理当前节点的位置不同对应着不同的遍历 def preorderTraversal(root): if not root: return print(root.val) #前序遍历,处理当前节点 preorderTraversal(root.left) # 递归遍历左子树
阅读全文
摘要:目录题目javascript题解:递归python题解一、分成左子树和右子树判断题解二、前序遍历+递归 题目 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,nul
阅读全文
摘要:目录题目python法一、前序遍历法二、中序遍历if not语法法三、后序遍历javascript题解:递归 题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。
阅读全文