位运算技巧 123456789101112131415161718192021//位运算算法技巧//不用临时变量交换两个数a ^= b;b ^= a;a ^= b;//判断是否异号(同号)boolean f = ((x ^ y) < 0);//利用或操作 | 和空格将英文字符转换为小写('A' | ' ') = 'a';//利用与操作 & 2022-10-02 #算法归纳
LeetCode题解 记录一些值得多刷的题 搜索旋转排序数组山谷数组的搜索在严格从小到大排序的数组中,索引0-i被翻转,导致最小元素位于数组中间 123456789101112131415161718192021222324252627282930class Solution { public int search(int[] nums, int target) { int pi 2022-10-01 #LeetCode初见
划分k个相等子集 123输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和 桶问题:若可以划分为k个子集,则想象有k个桶,容量均为sum/k,如果我们刚好将桶装满,则返回true,否则返回false 123456789101112131415161718192021222324 2022-09-27 #LeetCode初见
Redis Redis数据结构 数据类型 简单描述 使用场景 String string(字符串)是Redis最简单也是使用最广泛的数据结构,它的内部是一个字符数组。String(字符串)是动态字符串,允许修改;它在结构上的实现类似于Java中的ArrayList(默认构造一个大小为10的初始数组),这是冗余分配内存的思想,这种思想可以减少扩容带来的性能消耗。当string(字符串)的大小达到扩容阈 2022-09-24 #Redis
子集排列问题sucks 回溯算法解决所有子集排列问题形式一:元素无重复,且不可复选,即nums中所有元素均唯一,且最多使用一次 12345678910111213141516171819202122232425262728293031/* 组合/子集问题回溯算法框架 *///使用start参数来避免复选void backtrack(int[] nums, int start) { // 回溯算法标准框架 2022-09-13 #算法归纳
JVM相关知识 JAVA内存区域讲解运行时数据区域分为两部分:线程共享和线程私有 线程共享区域: 堆:是虚拟机内存的最大的一块,此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存,注意是“几乎”,JDK1.7之后,当方法中的对象引用没有被返回或者未被外部使用,就会直接在栈上分配内存。同时,堆也是垃圾收集器管理的主要区域,所以也被称为GC堆。 JDK1.8之前还有永久代实现的方法区, 2022-09-12 #Java基础知识
JAVA的字符串 String&StringBuilderString的底层数据结构是数组char value[] 123456789public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for characte 2022-08-14 #Java基础知识
Java数据结构 ArrayListArrayList即数组列表,是基于数组实现的,这个数组可以插入任何元素,只不过这个数组是可以按需扩容,可以进行数据拷贝的 ArrayList的构造123456789private static final int DEFAULT_CAPACITY = 10;//默认初始化容量private int size; //size指elementData中实际有多少元素transien 2022-08-12 #Java基础知识