798 1 分钟

# 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 ** 说明:** 你不能倾斜容器。 示例 public static int dan(int a[]) { // 初始答案为 0 int ans = 0; // 定义左指针 指向最左边 int left = 0; // 定义有指针 指向最右边 int right = a.length - 1; //...
815 1 分钟

# 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 输入:digits =...
913 1 分钟

# 最大子数组和 题目要求: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子 数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 1 示例 1: 2 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 3 输出:6 4 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 public class Demo02{ public static void main(String[] args) { int arr[] = {-2, 1, -3, 4, -1, 2, 1, -5,...
846 1 分钟

# 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长 度。 1 示例 1: 2 输入: s = "abcabcbb" 3 输出: 3 4 解释:因为无重复字符的最长子串是 "abc",所以其长度为 3。 public class Demo03{ public static void main(String[] args) { String str = "aabiecuot"; int dan = dan(str);...
596 1 分钟

# 旋转图像 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转 图像。 示例 public static void rotate(int[][] matrix) { int len = matrix.length; // 上下交换位置 // 将长度除 2, 因为只循环交换前后位置 for(int i = 0;i < len / 2;i ++){ // 将数组的一维的前面的放在 tmp 中 int[] tmp...
2.2k 2 分钟

# 数组中的第 K 个最大元素 给定整数数组 nums 和整数 k ,请返回数组中第 **k** 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4], k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6], k = 4 输出: 4 提示: 1 <= k <= nums.length <= 105 -104 <= nums[i] <=...
987 1 分钟

# 数据流的中位数 2 除了上次我们自己实现的 大顶堆 和小堆顶的类 我们还可以使用现成的类在 Java 中有一个功能类似的类名字叫 “PriorityQueue” 名为 优先级队列,只不过它的名字不叫 堆 我们用 PriorityQueue 来重写下 数据流的中位数 1 中讲述的题目 解题思路都是类似的:我们先定义一个 左边的大顶堆,再定义一个右边的小顶堆。用两个堆来解决 这道题目 # 代码实现如下: /** * @author Dkx * @version 1.0 * @2024/1/2311:13 * @function * @comment...
6.4k 6 分钟

# 数据流的中位数 1 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr = [2,3,4] 的中位数是 3 。 例如 arr = [2,3] 的中位数是 (2 + 3) / 2 = 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化 MedianFinder 对象。 void addNum(int num) 将数据流中的整数 num 添加到数据结构中。 double findMedian() 返回到目前为止所有元素的中位数。与实际答案相差 10-5 以内的答案将被接受。 示例...
3k 3 分钟

# 数据流中的第 K 个最大元素 设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类: KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。 示例: 输入: ["KthLargest", "add", "add",...
1.8k 2 分钟

# 打家劫舍 题目要求: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 题目链接:打家劫舍 示例 1: 输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。 示例 2: 输入:[2,7,9,3,1] 输出:12 解释:偷窃 1...