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

顺序表vector--------练习题8题解

前言

今天去了一家有故事的猫咖,里面的猫猫狗狗来自我们本地的一个流浪猫狗收容所,在他们的留言墙上我看到了那个慈祥的大姨,她是这些猫猫狗狗的妈妈,她心中又有什么样的信仰和信念支撑和驱动着她去不知劳累的干这些事情呢。

题目

解法1

class Solution {
public:int sumIndicesWithKSetBits(vector<int>& nums, int k) {int sum=0;int is,iy;for(int i=0;i<nums.size();i++){int cnt=0;is=i;while(is>0){iy=is%2;is=is/2;if(iy==1){cnt++;}}if(cnt==k){sum+=nums[i];}   }return sum;}
};

这是我本人的思路,通过十进制转二进制的方法,通过每一次将索引除以二,看余数是否为1,是则让cnt++,否则不变,然后继续用除以二得到的商重复以上操作,直到商等于0,然后比较cnt和k,如果相等则符合条件,加到sum里面,最终遍历完每一个索引以后,返回sum的值。

解法2

class Solution {
public:int sumIndicesWithKSetBits(vector<int>& nums, int k) {int sum=0;int is,iy;for(int i=0;i<nums.size();i++){int cnt=0;is=i;while(is){if(is&1){cnt++;}is = is>>1;}if(cnt==k){sum+=nums[i];}   }return sum;}
};

这是老师的思路,结合位与运算和右移运算,减少代码长度,更加简便。

位于运算即相同为1,不同为0,利用它可以判断最后一位是否为1;

右移运算即让索引对应的二进制数向右移动一位,左边补0,比如111->011.

反思

1.考察知识点:二进制到十进制的转换,位运算

2.踩的坑:对二进制转十进制不熟悉

3.可以优化的地方:利用位运算优化代码

http://www.dtcms.com/a/585213.html

相关文章:

  • 百度C++实习生面试题深度解析
  • rnn lstm transformer mamba
  • 卷积神经网络(CNN)全面解析
  • 50_AI智能体运维部署之集成LangSmith实现全链路追踪:AI系统的可观测性实践
  • Java 9 + 模块化系统实战:从 Jar 地狱到模块解耦的架构升级​
  • 及时通讯桌面端应用基vue+GO
  • 三个常听到的消息/中间件MQTT RabbitMQ Kafka
  • QML学习笔记(五十四)QML与C++交互:数据转换——QVariantList与QVariantMap
  • Linux的基础IO流
  • RabbitMQ死信交换机与延迟队列:原理、实现与最佳实践
  • 网站建设人员叫什么科目wordpress站长地图
  • Kafka安装搭建
  • 深度血虚:Django水果检测识别系统 CNN卷积神经网络算法 python语言 计算机 大数据✅
  • 郑州h5网站建设信息流推广
  • Git-新建分支并推送远程仓
  • 团关系转接网站建设免费psd模板素材
  • 永磁同步电机MTPA控制详解:从理论到实践的全方位指南
  • 【GORM(3)】Go的跨时代ORM框架!—— 数据库连接、配置参数;本文从0开始教会如何配置GORM的数据库
  • AIStarter 服务器版 PanelAI 开源+早鸟票 抢商业永久授权
  • 【项目】pyqt5基于python的照片整蛊项目
  • 深入理解Java堆栈:从原理到面试实战
  • MySQL快速入门——基本查询(下)
  • PyTorch深度学习进阶(二)(批量归一化)
  • 基于字符串的专项实验
  • CPO-SVM回归 基于冠豪猪优化算法支持向量机的多变量回归预测 (多输入单输出)Matlab
  • 飞凌嵌入式ElfBoard-标准IO接口之关闭文件
  • Rust 练习册 :Prime Factors与质因数分解
  • 12380网站开发apache wordpress rewrite
  • CSS - transition 过渡属性及使用方法(示例代码)
  • web网页开发,在线%考试管理%系统,基于Idea,vscode,html,css,vue,java,maven,springboot,mysql