leetCode 137. 只出现一次的数字 II(拓展篇) + 模5加法器 + 真值表(数字电路)

 leetCode 137. 只出现一次的数字 II 题解可看我的往期文章

leetCode 137. 只出现一次的数字 II + 位运算 + 模3加法器 + 真值表(数字电路) + 有限状态机-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_41987016/article/details/134138112?spm=1001.2014.3001.5501【拓展思考】如果改成除了一个数字出现一次,其余数字均出现 5 次呢?

(一)「同时计算」

 a=ab'c'x'+a'bcx

b=a'bc'x'+a'bcx'+a'b'cx+a'bc'x

c=a'b'cx'+a'bcx'+a'b'c'x+a'bc'x

化简 b 和 c:

b=a'bc'x'+a'bcx'+a'b'cx+a'bc'x

=a'bx'(c'+c)+a'x(b'c+bc')

=a'bx'(c'+c)+a'x(b\bigoplus c)

=a'bx'+a'x(b\bigoplus c)

=a'(bx'+x(b\bigoplus c))

c=a'b'cx'+a'bcx'+a'b'c'x+a'bc'x

=a'b'cx'+a'b'c'x+a'bcx'+a'bc'x

=a'b'(cx'+c'x)+a'b(cx'+c'x)

=a'b'(c\bigoplus x)+a'b(c \bigoplus x)

=a'(b'+b)(c\bigoplus x)

=a'(c\bigoplus x)

#include <iostream>
#include <vector>
using namespace std;int singleNumber(vector<int> nums) {int i, a, b, c, tmpa, tmpb, tmpc;a = 0;b = 0;c = 0;for (const int& x : nums) {// 第一种tmpa = a;tmpb = b;tmpc = c;a = a & ~tmpb & ~tmpc & ~x | ~a & tmpb & tmpc & x;b = ~tmpa & b & (~tmpc | tmpc) | ~tmpa & x & (b ^ tmpc);c = ~tmpa & (c ^ x);}return c;
}int main() {vector<int> nums{3,3,3,3,3,2,2,2,2,2,6,6,6,6,6,4,4,4,10,4,4 };cout<<"打印结果:"<<singleNumber(nums) << endl;return 0;
}

(二)「分别计算」

 发现上面化简c后,式子很简洁:

c=a'(c\bigoplus x) 

b=a'bc'x'+a'bcx'+a'b'c'x+a'bcx

=a'bc'x'+a'b'c'x+a'bcx'+a'bcx

=a'c'(bx'+b'x)+a'bc(x'+x)

=a'c'(b\bigoplus x)+a'bc

a=ab'c'x'+a'b'c'x

=b'c'(ax'+a'x)

=b'c'(a\bigoplus x)

#include <iostream>
#include <vector>
using namespace std;int singleNumber(vector<int> nums) {int i, a, b, c, tmpa, tmpb, tmpc;a = 0;b = 0;c = 0;for (const int& x : nums) {// 第二种c = ~a & (c ^ x);b = ~a & ~c & (b ^ x) | ~a & b & c;a = ~b & ~c & (a ^ x);}return c;
}int main() {vector<int> nums{3,3,3,3,3,2,2,2,2,2,6,6,6,6,6,4,4,4,10,4,4 };cout<<"打印结果:"<<singleNumber(nums) << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s异常Too many requests: Too many requests, please try again later.

问题现象 服务中使用了k8s client-go&#xff0c;日志里频繁出现如下异常信息&#xff0c;且部分节点出现NotReady状态。 failed to list *vI. Endpoints: Too many requests: Too m any requests, please try again later. 关于k8s Apiserver的限流 通过总量限流&#xff0c…

N-131基于jsp,ssm物流快递管理系统

开发工具&#xff1a;eclipse&#xff0c;jdk1.8 服务器&#xff1a;tomcat7.0 数据库&#xff1a;mysql5.7 技术&#xff1a; springspringMVCmybaitsEasyUI 项目包括用户前台和管理后台两部分&#xff0c;功能介绍如下&#xff1a; 一、用户(前台)功能&#xff1a; 用…

040-第三代软件开发-全新波形抓取算法

第三代软件开发-全新波形抓取算法 文章目录 第三代软件开发-全新波形抓取算法项目介绍全新波形抓取算法代码小解 关键字&#xff1a; Qt、 Qml、 抓波、 截获、 波形 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object …

【Linux】jdk Tomcat MySql的安装及Linux后端接口部署

一&#xff0c;jdk安装 1.1 上传安装包到服务器 打开MobaXterm通过Linux地址连接到Linux并登入Linux&#xff0c;再将主机中的配置文件复制到MobaXterm 使用命令查看&#xff1a;ll 1.2 解压对应的安装包 解压jdk 解压命令&#xff1a;tar -xvf jdk 加键盘中Tab键即可…

「Dr. Bomkus 的试炼」排行榜说明

简要概括 七大区域&#xff0c;一个任务&#xff1a;六场扣人心弦的试炼&#xff0c;有一个休闲大厅作为每场试炼的起点。 试炼 排行榜&#xff1a;掌握每场试炼&#xff0c;攀登排行榜。 以 Ethos Point 来记分&#xff1a;每个试炼中的任务都会获得一个EP。 两种任务类型&am…

idea提交代码一直提示 log into gitee

解决idea提交代码一直提示 log into gitee问题 文章目录 打开setting->Version control->gitee,删除旧账号&#xff0c;重新配置账号&#xff0c;删除重新登录就好 打开setting->Version control->gitee,删除旧账号&#xff0c;重新配置账号&#xff0c;删除重新登…

局域网内远程控制电脑的软件

局域网内远程控制电脑的软件在日常办公中&#xff0c;非常常见了。它可以帮助用户在局域网内远程控制其他电脑&#xff0c;实现文件传输、桌面展示、软键盘输入等功能。 局域网内远程控制电脑的软件有很多种&#xff0c;其中比较实用的有域之盾软件、安企神软件、网管家软件等等…

专业135总400+合工大合肥工业大学833信号分析与处理信息通信上岸经验分享

专业135总400合工大合肥工业大学833信号分析与处理信息通信上岸经验分享 基础课经验很多&#xff0c;大同小异&#xff0c;我分享一下自己的833专业课复习经验。 一&#xff1a;用到的书本 1.《信号与系统》&#xff08;第三版&#xff09;郑君里&#xff0c;高等教育出版社…

【面经】谈谈你对FastDFS的了解

FastDFS是什么 FastDFS是一个开源的轻量级分布式文件系统&#xff0c; 它对文件进行管理&#xff0c;功能包括&#xff1a;文件存储、文件同步、文件访问(文件上传、文件下载)等&#xff0c;解决了大容量存储和负载均衡的问题。 特别适合以文件为载体的在线服务&#xff0c;如…

最新Microsoft Edge浏览器如何使用圆角

引入 最近我看了edge官方的文档&#xff0c;里面宣传了edge的最新UI设计&#xff0c;也就是圆角&#xff0c;但是我发现我的浏览器在升级至最新版本之后&#xff0c;却没有圆角 网上有很多人说靠实验性功能即可解锁&#xff0c;但是指令我都试过了&#xff0c;每次都是搜索无结…

记一次红队打的逻辑漏洞(验证码绕过任意用户密码重置)

八月初参加某市演练时遇到一个典型的逻辑漏洞&#xff0c;可以绕过验证码并且重置任意用户的密码。 首先访问页面&#xff0c;用户名处输入账号会回显用户名称&#xff0c;输入admin会回显系统管理员。&#xff08;hvv的时候蓝队响应太快了&#xff0c;刚把admin的权限拿到了&a…

实力验证 | 求臻医学满分通过CAP及NCCL组织的国内外三项室间质评

近日&#xff0c;求臻医学以满分的优异成绩通过了由美国病理学家协会&#xff08;College of American Pathologists&#xff0c;CAP&#xff09;组织的NGS−A 2023&#xff1a;Next−Generation Sequencing (NGS) – Germline、NEO-B 2023 Neoplastic Cellularity能力验证项目…

Ansible中的playbook

目录 一、playbook简介 二、playbook的语法 三、playbook的核心组件 四、playbook的执行命令 五、vim 设定技巧 六、基本示例 一、playbook简介 1、playbook与ad-hoc相比&#xff0c;是一种完全不同的运用。 2、playbook是一种简单的配置管理系统与多机器部署系统的基础…

PostgreSQL在云端:部署、管理和扩展你的数据库

随着云计算技术的迅猛发展&#xff0c;将数据库迁移到云端已经成为许多企业的首选。而在众多数据库管理系统中&#xff0c;PostgreSQL因其稳定性、灵活性和可扩展性而成为了不少企业的首选之一。 部署PostgreSQL在云端 将PostgreSQL部署在云端是一个相对简单的过程。云服务提供…

前端项目部署后,需要刷新页面才能看到更新内容

问题背景 前端项目部署更新后&#xff0c;通知业务验证&#xff0c;业务点击收藏的标签&#xff0c;打开网页后没有看到修改的内容&#xff0c;每次都需要手动刷新&#xff0c;用户体验非常不好。 问题原因&#xff1a;缓存未过期&#xff0c;浏览器直接读取本地缓存&#xf…

C# WPF: Imag图片填充方式有哪些?

C#和WPF中的图像填充方式 在WPF中&#xff0c;你可以使用Image控件来显示图像&#xff0c;并使用不同的填充方式来控制图像在控件中的显示方式。以下是一些常见的图像填充方式&#xff1a; Stretch&#xff08;拉伸&#xff09;&#xff1a;这是默认的填充方式&#xff0c;它…

MySQL数据库的存储引擎,底层存储结构,事物隔离级别,索引,日志等

存储引擎 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的&#xff0c;所以存储引擎也可以被称为表引擎。 默认存储引擎是InnoDB。 InnoDB 在 MySQL 5.5 之后&#xff0c;InnoDB 是默认的 MySQL 引擎。 1.支持事务 2.行级锁…

idea中Run/Debug Python项目报错 Argument for @NotNull parameter ‘module‘ of ...

idea中Run/Debug Python项目报错 Argument for NotNull parameter module of ... idea中运行Python项目main.py时报错&#xff1a; Error running main: Argument for NotNull parameter module of com/intellij/openapi/roots/ModuleRootManager.getInstance must not be nu…

C++ 对象数组(整理)

C对象数组 一、对象数组的定义二、对象数组的特性三、对象数组的使用3.1 构造函数没有参数3.2 构造函数有一个参数3.3 构造函数有多个参数 四、为什么要使用对象数组&#xff1f; 一、对象数组的定义 所谓对象数组&#xff0c;指每一个数组元素都是对象的数组&#xff0c;即若…

Vue进阶(幺陆玖)项目部署后IE报 SCRIPT1002:语法错误 解决方案探讨

文章目录 一、前言二、组件懒加载2.1 什么是懒加载2.2 如何实现懒加载 三、延伸阅读 软件程序唤醒3.1 protocolCheck 实现3.2 自定义实现 四、拓展阅读 一、前言 Vue项目改造升级后&#xff0c;原本本地热部署后IE可正常打开的项目出现页面白屏且控制台给出SCRIPT1002:语法错误…