倪春恩的博客
06
18
offer2-74 offer2-74
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 1: 输入:int
2023-06-18
16
offer2-73 offer2-73
狒狒喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。 狒狒可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 k 根。如果这堆香蕉少于 k
2023-06-16
15
【转载】设计模式:责任链模式 【转载】设计模式:责任链模式
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都
2023-06-15
15
offer2-72 offer2-72
给定一个非负整数 x ,计算并返回 x 的平方根,即实现 int sqrt(int x) 函数。 正数的平方根有两个,只输出其中的正数平方根。 如果平方根不是整数,输出只保留整数的部分,小数部分将被舍去。 示例 1: 输入: x = 4 输
2023-06-15
14
【转载】设计模式:解释器模式 【转载】设计模式:解释器模式
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 意图:给定一个语言,定义它的
2023-06-14
14
offer2-71 offer2-71
给定一个正整数数组 w ,其中 w[i] 代表下标 i 的权重(下标从 0 开始),请写一个函数 pickIndex ,它可以随机地获取下标 i,选取下标 i 的概率与 w[i] 成正比。 例如,对于 w = [1, 3],挑选下标 0 的
2023-06-14
13
offer2-70 offer2-70
给定一个只包含整数的有序数组 nums ,每个元素都会出现两次,唯有一个数只会出现一次,请找出这个唯一的数字。 你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。 示例 1: 输入: nums = [1,1,2
2023-06-13
12
offer2-69 offer2-69
符合下列属性的数组 arr 称为 山峰数组(山脉数组) : arr.length >= 3存在 i(0 < i < arr.length - 1)使得:arr[0] < arr[1] < … arr[i-1]
2023-06-12
11
offer2-68 offer2-68
给定一个排序的整数数组 nums 和一个整数目标值 target ,请在数组中找到 target ,并返回其下标。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入
2023-06-11
09
offer2-67 offer2-67
给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。 示例 1: 输入:nums = [3,10,5,25,2,8] 输出:28 解释:最大运算结果是 5 X
2023-06-09
08
offer2-66 offer2-66
实现一个 MapSum 类,支持两个方法,insert 和 sum: MapSum() 初始化 MapSum 对象 void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整
2023-06-08
07
【转载】设计模式:备忘录模式 【转载】设计模式:备忘录模式
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 主要解决:所谓备忘录模式就是在不破
2023-06-07
2 / 3