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

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.lryc.cn/news/213164.html

相关文章:

  • docker导致root空间满进入不了系统解决方案
  • uni-app遮罩遮住小程序tabbar
  • Flink on yarn 加载失败plugins失效问题解决
  • 显卡服务器的特点和优势在哪里
  • c++设计模式二:原型模式
  • 【Qt控件之QMessageBox】详解
  • SSH安全登录远程主机
  • 揭秘!产品经理提升效率的秘密武器:10款AI生成PPT工具
  • Oracle修改带数据的字段类型
  • WebService接口方式和Restful接口这两者有什么区别和相同点
  • jenkins自动化操作步骤(gitblit)
  • centos中mongodb设置服务自启动并 允许远程IP访问
  • 实时定位和配送追踪:开发万岳同城外卖APP的关键技术特性
  • 数据库强化(3.存储过程)
  • 雅思小作文笔记
  • Java List Set Map
  • 【数据结构】数组和字符串(十三):链式字符串的基本操作(串长统计、查找、复制、插入、删除、串拼接)
  • Python3 获取当前服务器公网 IP 地址
  • EAS查前5分钟到现在的组织变动数据
  • uni-app——如何阻止事件冒泡
  • [MySQL]索引
  • 什么是AUTOSAR ComStack,AUTOSAR架构中,CAN通信堆栈CAN Communication Stack介绍
  • 黄金期货与黄金现货的区别
  • 【数据结构】数组和字符串(五):特殊矩阵的压缩存储:稀疏矩阵——压缩稀疏行(CSR)
  • springboot整合postgresql
  • C#__委托delegate
  • Jupyter Notebook的安装方法以及生成ipykernel
  • 测试员如何快速复现bug?一款合适的视频录制软件了解一下
  • 论文-分布式-并发控制-并发控制问题的解决方案
  • 【网络协议】聊聊http协议