二分查找模板

题目:二分查找模板

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public int binarySearch1(){
int l = 区间左端点, r = 区间右端点;
while(l<r){
int mid = l + r >> 1;
if(check(mid)) r = mid;
else l = mid + 1;
}
return r;
}
public int binarySearch2(){
int l = 区间左端点, r = 区间右端点;
while(l<r){
int mid = l + r + 1>> 1;
if(check(mid)) r = mid - 1;
else l = mid;
}
return r;
}
阅读更多

manacher算法

题目:Manacher 算法

算法简介:

Manacher算法是一个叫Manacher的人在1975年发明的, 这个方法最大的贡献是将回文字符串匹配的时间复杂度降低到了线性。

阅读更多

301.删除无效的括号

题目:301.删除无效的括号

给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。
返回所有可能的结果。答案可以按 任意顺序 返回。

阅读更多

496.下一个更大元素Ⅰ

题目:496.下一个更大元素Ⅰ

给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。
请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。
nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。

阅读更多

638.大礼包

题目:

在 LeetCode 商店中, 有 n 件在售的物品。每件物品都有对应的价格。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。

给你一个整数数组 price 表示物品价格,其中 price[i] 是第 i 件物品的价格。另有一个整数数组 needs 表示购物清单,其中 needs[i] 是需要购买第 i 件物品的数量。

还有一个数组 special 表示大礼包,special[i] 的长度为 n + 1 ,其中 special[i][j] 表示第 i 个大礼包中内含第 j 件物品的数量,且 special[i][n] (也就是数组中的最后一个整数)为第 i 个大礼包的价格。

返回 确切 满足购物清单所需花费的最低价格,你可以充分利用大礼包的优惠活动。你不能购买超出购物清单指定数量的物品,即使那样会降低整体价格。任意大礼包可无限次购买。

阅读更多

492.构造矩形

作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:

1
2
3
1. 你设计的矩形页面必须等于给定的目标面积。
2. 宽度 W 不应大于长度 L,换言之,要求 L >= W 。
3. 长度 L 和宽度 W 之间的差距应当尽可能小。

你需要按顺序输出你设计的页面的长度 L 和宽度 W。

阅读更多