【算法】位运算| & ^ ~ -n n-1

【算法】位运算| & ^ ~ -n n-1

目录

1.| 

2.&

3.^

3.1相加和位

3.1.1无进位去和

3.1.2进位去和

4.~

5.-n

6.n-1

位图


1.| 

1占侧|1 占1|0 化原同 | 同 为同


2.&

0占侧&0 占0&1 化原同 & 同 为同


3.^

无进位加法^0 和原同 ^ 同 消0

3.1相加和位

化二进制bit位01进位/无进位相加和的位上查

3.1.1无进位去和

260. 只出现一次的数字 III - 力扣(LeetCode)

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。

示例 1:

输入:nums = [1,2,1,3,2,5] 输出:[3,5] 解释:[5, 3] 也是有效的答案。

示例 2:

输入:nums = [-1,0] 输出:[-1,0]

示例 3:

输入:nums = [0,1] 输出:[1,0]

提示:

  • 2 <= nums.length <= 3 * 104
  • -231 <= nums[i] <= 231 - 1
  • 除两个只出现一次的整数外,nums 中的其他数字都出现两次
public int[] singleNumber(int[] nums) { int sum = 0; for (int i : nums) sum ^= i; // sum:两个不同数的^和 int tmp1 = sum & -sum; // a和b不同,肯定有一位比特位为1,tmp1:右首1提纯数 // 各只出现1次的 不同的 两个数 和1位 肯定不同,一个是0 一个是1,各分开在 此位为01的 2组中,其余出现2次的 都各成对分布在两组中 和为0,分开来两组消和 两不同数各出 int[] ret = new int[2]; for (int i : nums) { //if((i & tmp1) == 0) if((i & tmp1) != 0) // 右首1这位 为1的 这组,两个不同数的其中一个 这位是1的 分到这组 ret[0] ^= i; else ret[1] ^= i; // 右首1这位 为0的 这组,两个不同数的其中一个 这位是0的 分到这组 } return ret; }

3.1.2进位去和

137. 只出现一次的数字 || - 力扣(LeetCode)

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。

示例 1:

输入:nums = [2,2,3,2] 输出:3

示例 2:

输入:nums = [0,1,0,1,0,1,99] 输出:99

提示:

  • 1 <= nums.length <= 3 * 104
  • -231 <= nums[i] <= 231 - 1
  • nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次
public int singleNumber(int[] nums) { int ret = 0; for (int i = 0; i < 32; i++) { int sum = 0; for (int x : nums) if (((x >> i & 1) == 1)) sum++; if(sum % 3 == 1) ret |= 1 << i; }return ret; }

4.~

取反


5.-n

右首1 往左取反, n & -n 右首1纯提


6.n-1

右首1 含右取反n & (n-1) 右首1化0


位图

数变量的二进制槽子存bit01 代 对值

面试题 01.01. 判定字符是否唯一 - 力扣(LeetCode)

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode" 输出: false

示例 2:

输入: s = "abc" 输出: true

限制:

  • 0 <= len(s) <= 100
  • s[i]仅包含小写字母
  • 如果你不使用额外的数据结构,会很加分。
public boolean isUnique(String astr) { // 鸽巢原理优化: if(astr.length() > 26) return false; int bitMap = 0; // 位图数变量 for (int i = 0; i < astr.length(); i++) { int x = astr.charAt(i) - 'a'; // 判断字符是否已存在位图中: if(((bitMap >> x) & 1) == 1) return false; // 把此字符在位图中标记存在: bitMap |= (1 << x); } return true; }

Read more

VsCode和AI的前端使用体验:分别使用了Copilot、通义灵码、iflyCode和Trae

1、前言 大杂烩~每次开发一行代码,各个AI争先恐后抢着提供帮助 备注:四款插件都需要先去官网注册账号,安装好之后有个账号验证。 2、插件详解  2.1、AI分析的答案 * GitHub Copilot * 定位:老牌 AI 代码补全工具,深度集成于 VS Code,基于海量 GitHub 代码库训练,擅长代码片段生成和上下文补全。 * 基本使用:在代码编辑器中输入函数头或注释,自动生成后续代码。支持自动生成提交信息、调试建议和多文件上下文理解,但需手动选择文件。 * 功能特点:具有多语言支持、高准确性的特点,适用于复杂项目和全栈开发,能满足追求效率的企业团队在日常代码补全、快速原型开发中的需求。 * 注册地址:GitHub Copilot · Your AI pair programmer · GitHub * 通义灵码 * 定位:阿里推出的免费 AI

By Ne0inhk

WhisperLiveKit终极指南:从零搭建企业级实时语音识别系统

还在为语音转文字延迟太高而抓狂?🤯 传统的Whisper模型在处理实时流数据时表现不佳,而WhisperLiveKit正是为解决这一痛点而生。这款开源工具集成了Simul-Whisper、Streaming Sortformer等前沿技术,让你在本地环境中实现毫秒级延迟的语音识别。 【免费下载链接】WhisperLiveKitReal-time, Fully Local Speech-to-Text and Speaker Diarization. FastAPI Server & Web Interface 项目地址: https://gitcode.com/GitHub_Trending/wh/WhisperLiveKit 核心关键词:实时语音识别、说话人分离、多语言翻译、本地化部署 三大应用场景:立即上手的实用方案 场景一:在线会议实时记录 想象一下,团队会议不再需要专人记录,系统自动识别不同与会人员并生成带时间戳的会议纪要。通过Chrome扩展捕获会议音频,实现完全自动化的会议记录流程。 场景二:多媒体内容转录 YouTube视频、播客节目、在线课程——浏览器

By Ne0inhk

DeepSeek-R1-Distill-Llama-8B效果实测:CodeForces评分1205模型生成AC代码对比

DeepSeek-R1-Distill-Llama-8B效果实测:CodeForces评分1205模型生成AC代码对比 1. 这个模型到底能写对几道编程题? 你有没有试过让AI帮你解算法题?不是那种“大概意思对就行”的伪代码,而是真正在CodeForces上能提交、能通过所有测试用例的AC代码?这次我们把目光投向一个刚开源不久、但已经在多个推理榜单上崭露头角的轻量级选手——DeepSeek-R1-Distill-Llama-8B。 它不是参数动辄几十B的大块头,而是一个仅80亿参数的蒸馏模型,却在CodeForces评测中拿到了1205分。这个分数意味着什么?它比GPT-4o(759分)高出近60%,比Claude-3.5-Sonnet(717分)翻了快一倍,甚至超过了QwQ-32B(1316分)的九成水平。更关键的是,它跑得快、占内存少、部署简单——用Ollama一条命令就能拉起来,本地笔记本也能稳稳扛住。 这篇文章不讲大道理,不堆参数,就做一件事:真实还原它解题的过程。我们选了5道CodeForces典型题(涵盖模拟、贪心、二分、图论和动态规划),从读题、思考、写代码,到

By Ne0inhk

AI绘画新选择:Meixiong Niannian画图引擎实测体验

AI绘画新选择:Meixiong Niannian画图引擎实测体验 最近在本地部署AI绘画工具时,试了几个主流方案——有些对显存要求太高,3090跑SDXL都吃力;有些WebUI操作繁琐,调参像在写配置文件;还有些生成一张图要等半分钟,灵感早凉了。直到遇到这个叫「Meixiong Niannian」的画图引擎,我一口气跑了二十多组提示词,从写实人像到水墨山水,从赛博朋克街景到手绘风小猫,几乎张张可用。它不靠堆参数炫技,而是用一套轻巧、顺手、靠谱的工程设计,把文生图这件事真正拉回“个人能用”的尺度。 这不是又一个套壳UI,也不是简单换皮的LoRA合集。它背后是Z-Image-Turbo底座 + Niannian Turbo LoRA的定向组合,专为24G及以下显存优化,全程可视化操作,连负面词怎么写、CFG值设多少、为什么25步最平衡,都藏在交互逻辑里,不用查文档也能摸出门道。下面我就以一个真实使用者的身份,不讲原理、不列参数表,只说:它能画什么、怎么画得稳、哪些地方让人愿意天天打开。 1. 为什么说它是“真·轻量派”

By Ne0inhk