《算法闯关指南:优选算法--位运算》--36.两个整数之和,37.只出现一次的数字 ||

《算法闯关指南:优选算法--位运算》--36.两个整数之和,37.只出现一次的数字 ||
在这里插入图片描述

🔥草莓熊Lotso:个人主页
❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》
✨生活是默默的坚持,毅力是永久的享受!


🎬 博主简介:

在这里插入图片描述

文章目录


前言:

聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、排列等难题。 贪心算法:理解“局部最优”到“全局最优”的思路,解决区间调度等问题 内容以题带点,讲解思路与代码实现,帮助大家快速提升代码能力。

36. 两个整数之和

题目链接

371. 两整数之和 - 力扣(LeetCode)

题目描述

在这里插入图片描述


题目示例

在这里插入图片描述

解法(位运算):

算法思路:

  • 异或 ^ 运算本质是【无进位加法】
  • 按位与 & 操作能够得到【进位】
  • 然后一直循环,直到【进位】变成 0 为止

C++算法代码:

classSolution{public:intgetSum(int a,int b){while(b){int x=a^b;//先算出无进位相加的结果unsignedint carry=(unsignedint)(a&b)<<1;//再算出进位 a=x; b=carry;}return a;}};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:

在这里插入图片描述


在这里插入图片描述

37.只出现一次的数字 ||

题目链接

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

题目描述

在这里插入图片描述


题目示例

在这里插入图片描述

解法(比特位计数):

算法思路:

设要找的数为 ret
由于整个数组中,需要找的元素只出现了【一次】,其余的数都出现【三次】,因此我们可以用根据所有数的【某一个比特位】的总和 %3 的结果,快速定位到 ret 上的【一个比特位上】的值是 0 还是 1
这样我们通过 ret 的每一个比特位上的值,就可以将 ret 还原出来。

C++算法代码:

classSolution{public:intsingleNumber(vector<int>& nums){int ret=0;for(int i=0;i<32;i++)//依次去修改ret中的每一位{int sum=0;for(auto x:nums)//计算nums数组中所有数第i位的和if((x>>i)&1) sum++; sum%=3;if(sum==1) ret|=(1<<i);}return ret;}};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:

在这里插入图片描述
在这里插入图片描述

结尾:

🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点: 👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长 ❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量 ⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用 💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑 🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解 技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标! 

结语:本文精选两道经典位运算算法题,深入解析解题思路与实现代码。第36题通过异或和按位与操作实现无进位加法,循环处理进位直至为零,高效求解两数之和(371. 两整数之和)。第37题利用比特位计数技术,统计所有数字各二进制位出现次数,模3结果定位唯一出现一次的数字(137. 只出现一次的数字 II)。代码均附详细注释,配以手写笔记图解关键步骤,帮助读者掌握位运算核心技巧。

✨把这些内容吃透超牛的!放松下吧✨ʕ˘ᴥ˘ʔづきらど

Read more

❿⁄₁₃ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击实践 ➱ 获取并破解Net-NTLMv2哈希(下)

❿⁄₁₃ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击实践 ➱ 获取并破解Net-NTLMv2哈希(下)

郑重声明:本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。 🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论 | 保持连接💬 🌌 立即前往 👉晖度丨安全视界🚀 ▶ 信息收集  ▶ 漏洞检测 ▶ 初始立足点  ▶ 权限提升 ▶ 横向移动 ➢ 密码攻击 ➢  获取并破解Net-NTLMv2哈希(下)🔥🔥🔥 ▶ 报告/分析 ▶ 教训/修复 目录 1.密码破解 1.1 破解Windows哈希实践 1.1.3 捕获Net-NTLMv2哈希实践 1.1.3.3 使用Netcat连接绑定 Shell(kali上) 1.连接流程 2.连接命令

By Ne0inhk
Flutter 组件 metalink 的适配 鸿蒙Harmony 深度进阶 - 驾驭分片哈希审计、实现鸿蒙端多源并发路径重组与源端心跳探测弹性分发方案

Flutter 组件 metalink 的适配 鸿蒙Harmony 深度进阶 - 驾驭分片哈希审计、实现鸿蒙端多源并发路径重组与源端心跳探测弹性分发方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 metalink 的适配 鸿蒙Harmony 深度进阶 - 驾驭分片哈希审计、实现鸿蒙端多源并发路径重组与源端心跳探测弹性分发方案 前言 在前文中,我们实现了基于 metalink 的基础元数据解析。但在真正的“全球分布式加速”、“千万级终端 OTA 同步”或“超高吞吐 4K 视频预加载”场景中。简单的镜像地址解析仅仅是起点。面对成百上千个镜像源。如何确保在鸿蒙(OpenHarmony)端网络状态突变(如从 5G 切换到 Wi-Fi)时动态重组下载路径。面对一个 2GB 的巨型压缩包。如何实现秒级的分片完整性验证(Piece Verification)。面对由于某个 CDN 节点被 DDoS 攻击导致的性能雪崩。

By Ne0inhk
蓝桥杯C++组算法知识点整理 · 考前突击(上)【小白适用】

蓝桥杯C++组算法知识点整理 · 考前突击(上)【小白适用】

【背景说明】本文的作者是一名算法竞赛小白,在第一次参加蓝桥杯之前希望整理一下自己会了哪些算法,于是有了本文的诞生。分享在这里也希望与众多学子共勉。如果时间允许的话,这一系列会分为上中下三部分和大家见面,祝大家竞赛顺利! 【文风说明】本文主要会用代码+注释的方式来解释内容。相信学过编程的人都会发现程序比长篇大论更易理解! 目录 一、语言基础 1.1 编程基础 1.2 竞赛常用库函数 1.2.1 sort 函数 1.2.2 最值查找 1.2.3 二分查找 1.2.4 大小写转换 1.2.5 全排列 1.2.6 其它库函数整理 1.3 STL的用法 1.

By Ne0inhk
【干货】HNSW算法详解:从基础到进阶,掌握大模型向量搜索核心技术!

【干货】HNSW算法详解:从基础到进阶,掌握大模型向量搜索核心技术!

简介 本文详细介绍了HNSW算法,一种用于高维空间中最近邻搜索的高效索引方法。文章从基础概念开始,逐步解释了可导航图和NSW算法的工作原理、构建与搜索过程,以及其局限性。随后介绍了跳表数据结构,并详细阐述了HNSW的多层级构建和搜索机制。通过比较HNSW与NSW的搜索效率,展示了HNSW在减少跳数和提高搜索准确性方面的优势,为在大模型应用中实现高效的向量相似性搜索提供了技术基础。 HNSW(Hierarchical Navigable Small World)可能是专为高维空间中的最近邻搜索而设计的最有效、最高效的索引方法之一。其核心思想是构建一个图结构,其中每个节点代表一个数据向量,边根据节点的相似性进行连接。HNSW 以这样一种方式组织图表,通过有效地浏览图表来找到近似的最近邻居,从而促进快速搜索操作。但在我们理解 HNSW 之前,必须先理解NSW(可导航小世界算法),它是 HNSW 算法的基础。 什么是可导航图 如果我们将这些向量表示为图的顶点,则彼此靠近的顶点(即相似度高的向量)应该作为邻居连接。也就是说,即使两个节点没有直接连接,也应该可以通过遍历其他顶点到达它们。

By Ne0inhk