leetcode算法之位运算

目录

  • 1.判断字符是否唯一
  • 2.丢失的数字
  • 3.两整数之和
  • 4.只出现一次的数字II
  • 5.消失的两个数字
  • 6.位1的个数
  • 7.比特位计数
  • 8.汉明距离

1.判断字符是否唯一

判断字符是否唯一
在这里插入图片描述

class Solution {
public:
    bool isUnique(string astr) {
        //利用鸽巢原理做优化
        if(astr.size()>26) return false;

        int bitMap = 0; //使用位图来存储
        for(auto ch:astr)
        {
            int i = ch-'a';
            if((bitMap>>i)&1 == 1) return false;
            bitMap |= (1<<i);
        }
        return true;
    }
};

2.丢失的数字

丢失的数字
在这里插入图片描述

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

3.两整数之和

两整数之和
在这里插入图片描述

class Solution {
public:
    int getSum(int a, int b) {

        while(b!=0)
        {
            int x = a^b;
            unsigned int carry = (unsigned int)(a&b)<<1;
            a = x;
            b = carry;
        }
        return a;
    }
};

4.只出现一次的数字II

只出现一次的数字II
在这里插入图片描述

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int ret = 0;
        for(int i=0;i<32;i++)
        {
            int sum = 0;
            for(auto x:nums)
            {
                if((x>>i)&1 == 1) sum++;
            }
            sum %=3;
            if(sum == 1)
            {
                ret |= (1<<i);
            }
        }
        return ret;
    }
};

5.消失的两个数字

消失的两个数字
在这里插入图片描述

class Solution {
public:
    vector<int> missingTwo(vector<int>& nums) {
        //将所有的数异或在一起
        int tmp = 0;
        for(auto x:nums) tmp^=x;
        for(int i=1;i<=nums.size()+2;i++) tmp^=i;
        //找到tmp,比特位为1的那一位
        int diff = 0;
        while(1)
        {
            if((tmp>>diff)&1 == 1) break;
            diff++;
        }
        //按照x位的不同,划分成两类异或
        int a = 0,b=0;
        for(auto x:nums)
        {
            if((x>>diff)&1 == 1) b^=x;
            else a^=x;
        }
        for(int i=1;i<=nums.size()+2;i++)
        {
            if((i>>diff)&1 == 1) b^=i;
            else a^=i;
        }
        return {a,b};
    }
};

6.位1的个数

位1的个数
在这里插入图片描述
在这里插入图片描述

class Solution {
public:
    int hammingWeight(uint32_t n) {
        int sum = 0;
        for(int i=0;i<32;i++)
        {
            if((n>>i)&1 == 1) sum++;
        }
        return sum;
    }
};

7.比特位计数

比特位计数
在这里插入图片描述

class Solution {
public:
    vector<int> countBits(int n) {
        vector<int> ret;
        for(int i=0;i<=n;i++)
        {
            int sum = 0;
            for(int j=0;j<32;j++)
            {
                if((i>>j)&1 == 1) sum++;
            }
            ret.push_back(sum);
        }
        return ret;
    }
};

8.汉明距离

汉明距离
在这里插入图片描述

class Solution {
public:
    int hammingDistance(int x, int y) {
        int sum = 0;
        int temp = x^y;
        for(int i=0;i<32;i++)
        {
            if((temp>>i)&1 == 1) sum++;
        }
        return sum;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

性能压力测试的优势与重要性

性能压力测试是软件开发过程中至关重要的一环&#xff0c;它通过模拟系统在极限条件下的运行&#xff0c;以评估系统在正常和异常负载下的表现。这种测试为确保软件系统的可靠性、稳定性和可伸缩性提供了关键信息。下面将探讨性能压力测试的优势以及为什么在软件开发中它具有不…

数据资产到底如何入表?

2024年1月1日起&#xff0c;财政部《企业数据资源相关会计处理暂行规定》正式施行&#xff0c;距离现在只有一个多月的时间。 数据资源入表意味着企业可以将数据资源确认为企业资产负债表中“资产”一项。对于拥有丰富数据资源的企业来说&#xff0c;有望在财务报表中体现其真…

Redis(集合Set和有序集合SortedSet)

SET集合中的元素是不允许重复的&#xff0c;SET中的命令都是以S开头的。 使用SADD 在集合中添加元素&#xff0c;使用SMEMBERS查看元素。 当添加重复元素时&#xff0c;会返回0代表添加失败&#xff0c;查询还是就Redis一个元素。 使用SISMEMBER查询元素是否在集合中&#xff…

ADAudit Plus:提升企业安全的不可或缺的审计解决方案

随着信息技术的飞速发展&#xff0c;企业在数字化转型过程中面临着越来越多的安全威胁。为了保护敏感数据、防范内外部攻击&#xff0c;企业需要强大的安全审计解决方案。在这个背景下&#xff0c;ADAudit Plus作为一款强大而全面的安全审计工具&#xff0c;成为了众多企业的首…

谷歌浏览器F12/打开开发者工具网络就无法连接报错

刷新页面就出现提示&#xff1a; 原因&#xff1a;浏览器网络设置的问题&#xff0c;网络设置了离线状态&#xff0c;切换回3G即可。

网站页头被挂马状态及新增了index.html文件解决思路

今天网站刚新增了篇了文章《从nginx层阻断可执行的php 防止宝塔站点挂马》,整体测试下来还是不靠谱,设置后导致所有PHP文件都打不开了。 经过不断的查看日志和搜索办法总算告一段落,后续待观察。原因如下,多个网站目录新增了index.html文件,看时间是近两天上传的。 网站代…

Quest 3期间Sui上游戏处理了数百万笔交易

Sui固有的可扩展性和低且可预测的gas费使其成为Web3游戏的理想平台。在Quest 3中&#xff0c;参与的游戏项目处理了数百万笔交易&#xff0c;这毫无疑问地展示了Sui卓越的能力。 Quest 3的主题是游戏&#xff0c;让开发者有机会向潜在玩家介绍他们激动人心的创作。鼓励这些玩家…

Go 字符串处理:fmt.Sprintf与string.Builder的比较

在Go语言中&#xff0c;我们通常会遇到两种主要的方式来处理和操作字符串&#xff1a;使用fmt.Sprintf函数和string.Builder类型。尽管两者都可以实现字符串的格式化和连接&#xff0c;但它们在性能和用法上有一些关键区别。 1. fmt.Sprintf fmt.Sprintf是一个函数&#xff0c…

【解疑】ZIP压缩包的密码可以取消吗?

ZIP是工作中经常用到的文件压缩格式&#xff0c;它可以将多个文件压缩成一个文件&#xff0c;便于传输和存储。有时候&#xff0c;为了保护文件的私密性&#xff0c;很多人还会在压缩文件的同时设置密码保护。那问题来了&#xff0c;要是后续不需要保护了&#xff0c;ZIP压缩包…

DDD落地:从腾讯视频DDD重构之路,看DDD极大价值

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 谈谈你的DDD落地经验&#xff1f; 谈谈你对DDD的理解&#x…

(C++)string类及其函数

愿所有美好如期而遇 标准库中的string类 string是对类模板实例化出的类型的重命名&#xff0c;也就是说string就是basic_string<char>这个类型。 string是表示字符串的字符串类 该类接口与常规类的接口基本相同&#xff0c;再添加了一些专门用来操作string的常规操作。…

接口测试系列之 —— 前端交互测试和后端逻辑测试

01 前端交互测试 前端页面与后端代码之间的交互测试&#xff0c;可以理解为接口功能测试的一个子集。 测试准备 在进行交互测试前&#xff0c;首先要对前端功能有明确的认知&#xff0c;能够明确区分&#xff1a; 什么功能属于前端页面逻辑功能 什么功能又属于前端与后…

专业数据标注公司:景联文科技领航数据标注行业,满足大模型时代新需求

随着大模型的蓬勃发展和相关政策的逐步推进&#xff0c;为数据要素市场化配置的加速推进提供了有力的技术保障和政策支持。数据要素生产力度的不断提升&#xff0c;为数据标注产业带来了迅速发展的契机。 根据国家工信安全发展研究中心测算&#xff0c;2022年中国数据加工环节的…

Docker与Kubernetes结合的难题与技术解决方案

文章目录 1. **版本兼容性**技术解决方案 2. **网络通信**技术解决方案 3. **存储卷的管理**技术解决方案 4. **安全性**技术解决方案 5. **监控和日志**技术解决方案 6. **扩展性与自动化**技术解决方案 7. **多集群管理**技术解决方案 结语 &#x1f388;个人主页&#xff1a…

SpringCloud微服务:Nacos和Eureka的区别

目录 配置&#xff1a; 区别&#xff1a; ephemeral设置为true时 ephemeral设置为false时&#xff08;这里我使用的服务是order-service&#xff09; 1. Nacos与eureka的共同点 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 2. Nacos与Eu…

腾讯云便宜服务器有哪些?腾讯云这个服务器一个月7块钱!

大家好&#xff0c;今天我们来一起探讨一下腾讯云便宜服务器的相关问题。相信很多人在寻找可靠的云服务器时都会关注价格&#xff0c;而腾讯云作为国内领先的云计算平台&#xff0c;其价格优惠的服务器产品也是备受关注。那么&#xff0c;腾讯云便宜服务器有哪些呢&#xff1f;…

新手必看!!STM32定时器简介

一、定时器有哪些&#xff1f; 定时器分为三大类&#xff1a;基本定时器、通用定时器和高级定时器。 二、每个定时器的功能以及使用场景 1. 基本定时器&#xff08;Basic Timers&#xff09;&#xff1a; 功能&#xff1a; 基本定时器具有较为简单的功能&#xff0c;通常用于…

“CGT Awards”2024年度亚太区细胞与基因治疗行业之星奖项评选火热申报中

细胞与基因治疗近年来得到国内国际的广泛关注&#xff0c;大批科研单位和企业投入到这个领域的研发当中。到2023年底&#xff0c;12余种新型CGT 疗法有望在美国、欧洲或两地同时获批上市。近5年期间&#xff08;2018-2022&#xff09;&#xff0c;各地域CGT 疗法的临床试验占比…

【数据结构与算法】JavaScript实现树结构(一)

文章目录 一、树结构简介1.1.简单了解树结构1.2.树结构的表示方式 二、二叉树2.1.二叉树简介2.2.特殊的二叉树2.3.二叉树的数据存储 三、二叉搜索树3.1.认识二叉搜索树3.2.二叉搜索树应用举例 一、树结构简介 1.1.简单了解树结构 什么是树&#xff1f; 真实的树&#xff1a;…
最新文章