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

leetcode日记(76)格雷编码

这道题知道格雷编码会很简单,不知道就会很难。

算法本身没有难度,主要考察的是二进制变化的代码。

其实数据在代码中是以二进制存储的,所以二进制的前移可以直接使用“<<”、“|”,比如二进制1000就可以直接用“1<<3”(1左移3位),然后101要在最右添1可以用“(1<<3)|101”。

知道这个就好做了:

class Solution {
public:
    vector<int> grayCode(int n) {
        vector<int> v{0,1};
        for(int i=1;i<n;i++){
            vector<int> vv(v);
            reverse(vv.begin(),vv.end());
            for(int j=0;j<vv.size();j++){
                vv[j]=(1<<i)|vv[j];
            }
            v.insert(v.end(),vv.begin(),vv.end());
        }
        return v;
    }
};

(其实可以不新建vv,直接加在v后面,降低空间复杂度)

相关文章:

  • DAIR-V2X-R数据集服务器下载
  • 机器学习之逻辑回归
  • 用CLI操作MySQL 92数据库的命令
  • 安装mysql
  • 解码未来!安徽艾德未来智能科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!
  • Netty笔记5:Netty开发实例
  • 机器学习校招面经二
  • 【JavaScript—前端快速入门】JavaScript 综合案例 — 猜数字
  • 串口通讯基础
  • 【四.RAG技术与应用】【11.阿里云百炼应用(上):RAG在云端的实践】
  • 认识时钟树
  • Non-Homophilic Graph Pre-Training and Prompt Learning
  • ==和===在不同场景下的具体区别是什么?
  • 数据仓库的特点
  • 计算机毕业设计SpringBoot+Vue.js纺织品企业财务管理系统(源码+文档+PPT+讲解)
  • 运维SaltStack面试题及参考答案
  • STM32F103C8T6 基于 TB6612 驱动 12V 编码电机的教程
  • huggingface NLP主要知识点以及超级详解使用
  • c语言(循环(for,while,do while))
  • 基于RAG的法律条文智能助手
  • 个人网站怎么自己备案/2023第二波疫情已经到来了吗
  • 成都专业做网站的公司/seo门户网
  • 江苏省政府门户网站建设调查报告/宁波seo外包优化公司
  • html5 + css3 网站/杭州网站推广优化
  • 网站续费价格/夫唯seo
  • 广州做网站技术/寻找客户资源的网站