C++从零开始的打怪升级之路(day19)

这是关于一个普通双非本科大一学生的C++的学习记录贴

在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料

那么开启正题

今天分享的是关于vector的题目

1.只出现一次的数字2

137. 只出现一次的数字 II

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 **三次 。**请你找出并返回那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题

这题是上面题的升级版,同样的我们还是要在位上下功夫,但是按位异或肯定行不通了,我们得靠别的方法,比如计数,创建一个32大的数组,将数据遍历按位是否为1对数组进行++,最后数组内的数据都是3n和3n+1,这时让ret加上3n+1对应的位,就可以得到想要的答案了,当然这里的重复数字也可以是2,5,7...

cpp 复制代码
​
class Solution {
public:
    int singleNumber(vector<int>& nums)
    {
        int a[32] = { 0 };
        int i = 0;
        int ret = 0;
        for (i = 0; i < nums.size(); i++)
        {
            int j = 0;
            for (j = 0; j < 32; j++)
            {
                if (nums[i] & (1 << j))
                {
                    a[j]++;
                }
            }
        }
        for (i = 0; i < 32; i++)
        {
            if ((a[i] - 1) % 3 == 0)
            {
                ret += (1 << i);
            }
        }

        return ret;
    }
};

​

这是ac代码

今天的博客就到这里了,后续内容明天分享,最近因为考试周原因不能更新太多内容,等考试周结束了再"快马加鞭"

新手第一次写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!!

相关推荐
666HZ6662 分钟前
C语言——黑店
c语言·开发语言
Gomiko8 分钟前
JavaScript基础(八):函数
开发语言·javascript·ecmascript
〝七夜56915 分钟前
JVM内存结构
java·开发语言·jvm
初级炼丹师(爱说实话版)15 分钟前
JAVA泛型作用域与静态方法泛型使用笔记
java·开发语言·笔记
Mr_WangAndy17 分钟前
C++17 新特性_第二章 C++17 语言特性_std::any和string_view
c++·string_view·c++40周年·c++17新特性·c++新特性any
技术净胜1 小时前
MATLAB二维绘图教程:plot()函数全解析(线条样式/颜色/标记/坐标轴设置)
开发语言·matlab
Slow菜鸟1 小时前
Java开发规范(八)| 安全规范—企业级应用的“架构级底线”
java·开发语言·安全
憨憨崽&1 小时前
进击大厂:程序员必须修炼的算法“内功”与思维体系
开发语言·数据结构·算法·链表·贪心算法·线性回归·动态规划
毕设源码-邱学长1 小时前
【开题答辩全过程】以 基于Java的公职备考在线学习系统的设计与实现为例,包含答辩的问题和答案
java·开发语言·学习
水天需0102 小时前
C++ 三种指针转换深度解析
c++