
leetcode
文章平均质量分 88
老马啸西风
Github: https://github.com/houbb
Email:[email protected]
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode.136 single-number 力扣.136 只出现一次的数字 位运算
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。异或的性质是:相同的数字异或结果为 0,0 和任何数字异或结果为该数字本身。通过 HashMap 记录每一个元素出现的次数,然后找到为1的。所以异或所有元素,最后的结果就是那个只出现一次的数字。除了某个元素只出现一次以外,其余每个元素均出现两次。因为其他的元素成对出现,那么剩下的就是结果。输入:nums = [4,1,2,1,2]输入:nums = [2,2,1]找出那个只出现了一次的元素。输入:nums = [1]原创 2025-07-24 00:39:54 · 498 阅读 · 0 评论 -
leetcode bit operator 位运算入门介绍
Java 中的位运算是对整数类型(byteshortintlong)的二进制位进行操作的一种运算方式。位运算通常用于底层编程、优化性能、加密算法等领域。原创 2025-07-24 00:38:48 · 902 阅读 · 0 评论 -
java 位运算转换 bit operator convert
1的int补码(32位)是1111 1111 1111 1111 1111 1111,如果将byte转换为int,那么对应的十六进制数是0xffff。如果不用&0xff,那么在进行负数的运算时就会出现问题,如:使用-1进行运算,-1的byte补码是:1111 1111,对应的十六进制数字是0xff;首先 0xff 是十六进制的255,也就是二进制的1111 1111,对0xff取与,实际上就是要取这个数最低八位的值,截一个字节的长度。首先:一个int有4个八位,也就是4个字节。,如果想转换为整数。原创 2025-07-23 23:35:26 · 573 阅读 · 0 评论 -
java 位运算介绍 bit operator base intro
在 32 位操作系统上,如果一条 CPU 指令是 4 byte,那么 CPU 执行一次能够读取 32 bit 内容,所以一个指令周期内就能够完成指令,如果一条 CPU 指令是 8 byte 的话,那么 32 位操作系统就需要通过 2 个指令周期才能完成指令的读取,而对应的 64 位操作系统因为一次能够读取 64 bit 内容,所以它在一个指令周期就能够读取指令。a >> b 将数值 a 的二进制数值从 0 位算起到第 b - 1 位,整体向右方向移动 b 位,符号位不变,高位空出来的位补数值 0。原创 2025-07-23 23:34:31 · 752 阅读 · 0 评论 -
001-ksum 求符合条件的 k 个数 1. Two Sum/15. 3Sum/18. 4Sum/
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。我们通过两个指针,l r 分别计算每一次的差值,找到最小的差异。原创 2023-03-22 15:40:56 · 456 阅读 · 0 评论 -
【leetcode】如何实现 regex 正则表达式引擎
题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。个人分析拿到题目的第一反应就是这是一个 regex 表达式解析引擎,但是过于复杂。于是可以按照一定的顺序去实现。下面来逐步看一下这个题目的解答过程.原创 2020-07-06 22:17:24 · 1143 阅读 · 0 评论 -
【leetcode】合并 k 个有序链表,我给了面试官这 5 种解法
开胃菜在进入本节的正题之前,我们先来看一道开胃菜。题目 21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解法 1思路直接两个列表合并,排序,然后重新构建一个新的链表。java 实现public ListNode mergeTwoLists(ListNode l1, List.原创 2020-06-24 00:24:29 · 673 阅读 · 0 评论