15.三数之和

题目描述

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != kj != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

注意: 答案中不可以包含重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。
2022-10-08并发编程系列00

JDK 7 HashMap 并发死链

死循环问题发生在JDK1.7版本中,造成这个问题主要是由于HashMap自身的运行机制,加上并发操作,从而导致了死循环。 在JDK1.7中HashMap的底层数据实现是数组+链表的方式

初始状态 :

image-20221004201547959

JDK7 的 HashMap在数据添加时使用的是 头插入 ,如下图所示:

11.盛水最多的容器

题目描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0)(i, height[i])

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

**说明:**你不能倾斜容器。

示例 1:

img

输入:[1,8,6,2,5,4,8,3,7]
输出:49 
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
2022-09-27JVM系列00

JVM指令手册

栈和局部变量操作

将常量压入栈的指令

  • aconst_null 将null对象引用压入栈
  • iconst_m1 将int类型常量-1压入栈
  • iconst_0 将int类型常量0压入栈
  • iconst_1 将int类型常量1压入栈
  • iconst_2 将int类型常量2压入栈
  • iconst_3 将int类型常量3压入栈
  • iconst_4 将int类型常量4压入栈
  • iconst_5 将int类型常量5压入栈
  • lconst_0 将long类型常量0压入栈
  • lconst_1 将long类型常量1压入栈
  • fconst_0 将float类型常量0压入栈
  • fconst_1 将float类型常量1压入栈
  • dconst_0 将double类型常量0压入栈
  • dconst_1 将double类型常量1压入栈
  • bipush 将一个8位带符号整数压入栈
  • sipush 将16位带符号整数压入栈
  • ldc 把常量池中的项压入栈
  • ldc_w 把常量池中的项压入栈(使用宽索引)
  • ldc2_w 把常量池中long类型或者double类型的项压入栈(使用宽索引)