04 2021 档案
摘要:前置知识: 1 0 与 任何数 异或 都为任何数 2 任何数与自身异或 都为0 3 两个不相同的数 异或为 两数相减的绝对值 题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素 (一)代码 到底如何
阅读全文
摘要:题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 思路: 新建指针(数组下标),
阅读全文
摘要:死锁定义: 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。 例如:如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了 java 死锁产生的四个必要条件: 1、互斥使用,
阅读全文
摘要:题目: 现在有两种线程,氧 oxygen 和氢 hydrogen,你的目标是组织这两种线程来产生水分子。 存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。 氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏
阅读全文
摘要:题目: 相同的一个 ZeroEvenOdd 类实例将会传递给三个不同的线程: 线程 A 将调用 zero(),它只输出 0 。线程 B 将调用 even(),它只输出偶数。线程 C 将调用 odd(),它只输出奇数。每个线程都有一个 printNumber 方法来输出一个整数。请修改给出的代码以输出
阅读全文
摘要:题目: 我们提供一个类: class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { prin
阅读全文
摘要:(一) 使用信号量 Semaphore 初始化0个 第一个执行完,释放一个,下一个获取到进行执行 (二)CountDownLatch(减法计数器) 多线程
阅读全文
摘要:题目:回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。 思路: 转成字符串 用 charAt 返回指定位置得字符 (一) 代码 -- 转字符串处理
阅读全文
摘要:题目: 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 (一)代码 今天做了红烧排骨,盐放多了。 MMD
阅读全文
摘要:题目: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 思路:根据题目中的描述,是数字的逆序,从头结点相加,进位
阅读全文
摘要:思路: 双指针解决 map key 存值 ,value 存索引位置 如果map 中key重复,就将start 索引置为重复得下标加1 end 每次都++,注意初始需置为-1 (一) 代码 算法是必须要过的坎
阅读全文
摘要:思路: 将数据 push 存入一个栈 当第二个栈是空的时候,将第一个栈中得数据出栈pop,进入第二个栈中push 就完成了队列得功能 (一)代码 岁月身后紧追!
阅读全文
摘要:题目: 给出一个整数数组,请在数组中找出两个加起来等于目标值的数, 你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的 假设给出的数组中只存在唯一解 例如: 给出的数组为 {20, 70, 110, 1
阅读全文