当前位置: 首页 > news >正文

《算法闯关指南:优选算法--位运算》--34.判断字符是否唯一,35.丢失的数字

在这里插入图片描述

🔥草莓熊Lotso:个人主页

❄️个人专栏: 《C++知识分享》 《Linux 入门到实践:零基础也能懂》

✨生活是默默的坚持,毅力是永久的享受!

🎬 博主简介:

在这里插入图片描述


文章目录

  • 前言:
  • 位运算基础前置知识
  • 34. 判断字符是否唯一
    • 解法(位图的思想):
      • 算法思路:
    • C++算法代码:
    • 算法总结&&笔记展示:
  • 35. 丢失的数字
    • 解法(位运算):
      • 算法思路:
    • C++算法代码:
    • 算法总结&&笔记展示:
  • 结尾:


前言:

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


位运算基础前置知识

(
上面提到的5个题大家可以先写一下,其它的公式和推导建议大家记下来。

34. 判断字符是否唯一

题目链接

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

题目描述

在这里插入图片描述

题目示例

在这里插入图片描述

解法(位图的思想):

算法思路:

利用【位图】的思想,每一个【比特位】代表一个【字符,一个 int 类型的变量 32 位足够表示所有的小写字母。比特位里面如果是 0,表示这个字符没有出现过。比特位里面的值是 1,表示该字符出现过。
那么我们就可以用一个【整数】来充当【哈希表】。

C++算法代码:

class Solution {
public:bool isUnique(string astr) {if(astr.size()>26) return false;int m=0;for(auto& s:astr){if((m>>(s-'a'))&1) return false;else m|=(1<<(s-'a'));}return -1;}
};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:
在这里插入图片描述
在这里插入图片描述


35. 丢失的数字

题目链接

268. 丢失的数字 - 力扣(LeetCode)

题目描述
在这里插入图片描述
题目示例
在这里插入图片描述

解法(位运算):

算法思路:

设数组的大小为 n ,那么缺失之前的数就是【0,n】,数组中是在【0,n】中缺失一个数形成的序列
如果我们把数组中的所有数,以及【0,n】中的所有数全部【异或】在一起,那么根据【异或】运算的【消消乐】规律,最终的异或结果应该就是缺失的数~

C++算法代码:

class Solution {
public:int missingNumber(vector<int>& nums) {int ret=0;for(auto& n:nums)ret^=n;for(size_t i=0;i<=nums.size();i++)ret^=i;return ret;}
};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:
在这里插入图片描述
在这里插入图片描述


结尾:

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

结语:本文聚焦位运算算法题实战,通过两道经典例题讲解位图与异或技巧。34题利用位图思想,用整数比特位标记字符出现情况,实现O(1)空间复杂度判断字符唯一性。35题运用异或消消乐特性,通过数组与完整序列异或找出缺失数字。笔记图解辅助理解位运算核心逻辑,适合快速掌握高效解题策略。

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

在这里插入图片描述

http://www.dtcms.com/a/576856.html

相关文章:

  • 四川建设网网站首页网站开发 周期
  • linux怎么检查磁盘是否有坏道
  • 微信小程序开发——第三章:WXML 与 WXSS —— 小程序页面结构与样式设计
  • Pytorch 内存布局优化:Contiguous Memory
  • pytorch-张量
  • MYSQL CDC 同步到 PAIMON
  • MATLAB实现高光谱分类算法
  • Linux:WSL常用指令总结
  • Git 最近提交中不小心包含了多余的文件怎么办
  • T100打破远程孤岛-轻松实现异地组网-P2P打洞+UDP NAT 穿透
  • 建设网站人员名单企业网站建设报价单
  • 联通研究院:基于‘多模态SCA+全周期协同’的中间件开源风险治理实践
  • 五子棋项目Alpha-Beta剪枝与MCTS+神经网络实现人机对弈算法对比报告
  • 测试题-5
  • 商洛免费做网站公司网站设计策划案
  • Java 项目 HTTP+WebSocket 统一权限控制实战
  • Tomcat日志配置与优化指南
  • 技术演进中的开发沉思-174 java-EJB:分布式通信
  • HarmonyOS实战项目:AI健康助手(影像识别与健康分析)
  • 利用 AWS Lambda 与 EventBridge 优化低频 Java 作业的云计算成本
  • 工业和信息化部网站备案管理系统公司网站维护怎么维护
  • 深入理解 Spring Boot 中的 Redis 缓存集成:从基础配置到高可用实践
  • 辽宁网站建站优化公司怎么在网上做装修网站
  • 界面控件Telerik UI for WPF 2025 Q3亮点 - 集成AI编码助手
  • 拦截adb install/uninstall安装 - 安装流程分析
  • 【小技巧】PyCharm建立项目,VScode+CodeX+WindowsPowerShell开发Python pyQT6
  • DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(五)
  • AI SQL助手本地搭建(附源码)
  • Zabbix企业级分布式监控系统(下)
  • 『Linux升级路』解析环境变量