楼梯 成本offer 088

【剑指 Offer】 60. n个骰子的点数

【题目】 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 示例 1: 输入: 1 输出: [0.16667,0.16667,0.16667 ......
骰子 点数 Offer 60

【剑指 Offer】 51. 数组中的逆序对

【题目】 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1:输入: [7,5,6,4]输出: 5 限制:0 <= 数组长度 <= 50000来源:力扣(LeetCode)链接:https://leetcode.cn ......
逆序 数组 Offer 51

【剑指 Offer】17. 打印从1到最大的n位数

【题目】 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]来源:力扣(LeetCode)链接:https://leetcode.cn/proble ......
位数 Offer 17

剑指 Offer II 083. 没有重复元素集合的全排列

分析: 今天看的明日一练,这道题有点忘了怎么做了 先偷个懒,用了个全排列函数,后面再研究 代码: 1 class Solution(object): 2 def permute(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: List[Lis ......
元素 Offer 083 II

位运算:剑指 Offer 39. 数组中出现次数超过一半的数字

题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 限制: 1 <= 数组长度 <= 50000 解题思路: 摩尔投票法: 核心理念为 票数正负抵消 。此方法时间和空间复杂度分别为 O(N) 和 O(1) ,为本题的最 ......
数组 次数 数字 Offer 39

【剑指 Offer】49. 丑数

【题目】 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明: 1 是丑数。 n 不超过1690。来源: ......
Offer 49

【剑指 Offer】 19. 正则表达式匹配

【题目】 请实现一个函数用来匹配包含'. '和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"和"ab*a"均不匹 ......
正则 表达式 Offer 19

代码随想录Day38-Leetcode509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯

咳咳, 因为找实习+摆导致时间被浪费大半; 先从动态规划学起吧,之前的慢慢补。 理论基础 动态规划的解题步骤 1.确定dp数组及对应下标的含义 2.确定dp的状态转移方程(递推公式) 3.确定dp数组如何初始化 4.确定dp遍历顺序 5.距离推导dp数组验证 509. 斐波那契数 题目链接:http ......
楼梯 随想录 随想 Leetcode 代码

排序:剑指 Offer 45. 把数组排成最小的数

题目描述: 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 提示: 0 < nums.length <= 100说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数 拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0 注:+ 代表的是 ......
数组 Offer 45

剑指 Offer 10- I. 斐波那契数列

分析: 偷个懒,上次做的一样的题 代码: 1 class Solution(object): 2 def fib(self, n): 3 """ 4 :type n: int 5 :rtype: int 6 """ 7 if n<2: 8 return n 9 f=[0 for i in range ......
数列 Offer 10

【剑指 Offer】38. 字符串的排列

【题目】 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]来源:力扣(LeetCode)链接:https://leetcode. ......
字符串 字符 Offer 38

6个优化策略,助你降低K8S成本

Kubernetes 早已成为容器编排引擎的事实标准,而随着 Kubernetes 环境的复杂性持续增长,成本也在不断攀升。CNCF 发布的调查报告《Kubernetes 的 FinOps》显示,68%的受访者表示 Kubernetes 开销正在上涨,并且一半的人所在的组织经历了每年超过20%的开销 ......
成本 策略 K8S K8 8S

【剑指 Offer】 37. 序列化二叉树

【题目】 请实现两个函数,分别用来序列化和反序列化二叉树。你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示:输入输出格式与 LeetCode 目前使用的方式一致, ......
序列 Offer 37

分治算法:剑指 Offer 36. 二叉搜索树与双向链表

题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。 对于双向循环链表,第一个节点的前 ......
双向 算法 Offer 36

【剑指 Offer】 59 - II. 队列的最大值

【题目】 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入: ["MaxQueue","push ......
最大值 队列 Offer 59 II

【剑指 Offer】 59 - I. 滑动窗口的最大值

【题目】 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 [1 3 -1] -3 5 3 6 7 3 1 [3 -1 - ......
最大值 Offer 59

剑指 Offer II 017. 含有所有字符的最短字符串

题目链接:剑指 Offer II 017. 含有所有字符的最短字符串 方法:同向双指针 解题思路 基本思路:统计 $t$ 字符串中每个字符的个数,然后使用双指针遍历字符串 $s$,当窗口覆盖 $t$ 中所有字符时,开始缩短左指针到可以到达的最右侧,取窗口最小的字符串为答案; 需要考虑的问题: 什么情 ......
字符 字符串 Offer 017 II

分治算法:剑指 Offer 25. 合并两个排序的链表

题目描述: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 限制: 0 <= 链表长度 <= 1000 解题思路: class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { Lis ......
算法 两个 Offer 25

剑指 Offer 55 - II. 平衡二叉树

剑指 Offer 55 - II. 平衡二叉树 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 tr ......
Offer 55 II

剑指 Offer 10- II. 青蛙跳台阶问题

分析: 因为好久没有练习思维还没有转变,所以这道题思考有点慢 首先还是建立状态,到达第i级台阶时,有f[i]种跳法 最后答案f[n-1] 再状态转移,f[i]=f[i-1]+f[i-2] 赋初值,因为可以选择跳一阶或者两阶,所以初始赋值f[0]和f[1],f[0]=1,f[1]=2 然后编写代码,但 ......
台阶 青蛙 问题 Offer 10

剑指 Offer II 088. 爬楼梯的最少成本

剑指 Offer II 088. 爬楼梯的最少成本 - 力扣(LeetCode) 代码: class Solution(object): def minCostClimbingStairs(self, cost): """ :type cost: List[int] :rtype: int """ ......
楼梯 成本 Offer 088 II

回溯算法:剑指 Offer 38. 字符串的排列

题目描述: 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 限制: 1 <= s 的长度 <= 8 class Solution{ Set<String> res = new HashSet<>(); public String[] pe ......
字符串 算法 字符 Offer 38

剑指 Offer 33. 二叉搜索树的后序遍历序列(java解题)

leetcode《图解数据结构》剑指 Offer 33. 二叉搜索树的后序遍历序列(java解题)的解题思路和java代码,并附上java中常用数据结构的功能函数。 ......
序列 Offer java 33

从功能到外企测开,工作1年半拿下年薪30万的测开 offer,未来可期

说一下我的大致情况,女,2018年毕业于末流211计算机本科。后来待业两年,完全没有从事互联网方面的工作。去年来到北京,在小公司做了一年多功能测试。今年11月底跳槽到外企,开始了我钱多事少离家近,每周965的快乐生活,现在年薪30万左右。 降大任于斯人也,必先苦其心志 2014年,高考没有考好,为了 ......
年半 外企 年薪 功能 offer

剑指Offer——57.和为s的两个数字(c语言)

title: 剑指Offer 57.和为s的两个数字(c语言) 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 示例1: 输入:nums = [2,7,11,15], target = 9 输出:[2,7] 或者 [7,2 ......
两个 语言 数字 Offer 57

剑指Offer——10-I.斐波那契数列(c语言)

title: 剑指Offer 10-I.斐波那契数列(c语言) 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 ......
数列 语言 Offer 10

剑指Offer——59-I.滑动窗口的最大值(c语言)

title: 剑指Offer59-I.滑动窗口的最大值(c语言) 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 ......
最大值 语言 Offer 59

剑指Offer——24.反转链表(c语言)

title: 剑指Offer 24.反转链表(c语言) 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: $$ 0 \leqslant 节点个数 \leqslant ......
语言 Offer 24

剑指Offer——10-II.青蛙跳台阶问题(c语言)

title: 剑指Offer 10-II.青蛙跳台阶问题(c语言) 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例1: 输入:n = 2 ......
台阶 青蛙 语言 问题 Offer