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

leetcode-2311.小于等于k的最长二进制子序列

题目描述

解题思路

这一题要求是子序列如果改成连续子序列难度不是一个子序列什么子序列就是这个字符取出若干字符原先出现的顺序组合形成字符串比如00101010这个字符00000一个子序列101010一个连续子序列

那么首先如果一个简单想法所有0全部拿出来组成一个子序列一定小于等于k因为此时0然后看看哪些1插入

那么由于字符串越靠前1插入带来增长越大所以字符串尾部往前遍历选择插入1插入插入一个1带来增长与它当前位置距离末尾字符位置距离pow_有关pow(2,pow_)那么我们可以1<<pow_计算

潜在在于字符s可能很长那么这个长度一直计算左移带来数值溢出问题

题目k范围int类型所以31以内比较安全(int 有1位表示正负)pow_超过31无需计算左移直接跳过1即可因为这样带来增长一定k

代码

int longestSubsequence(string s, int k) {int pow_ = -1, sum = 0,ret = 0;for(int i = s.size() - 1;i >= 0; i--){
		pow_ ++;if(s[i] == '1'){if(pow_ >= 31) continue;else if(int tmp = sum + (1 << pow_);tmp > k) 		continue;else 
				sum = tmp;}
		ret ++;}	return ret;
}

http://www.lryc.cn/news/575570.html

相关文章:

  • Apipost和Postman对比
  • view-design的日期时间插件怎么在只选择日期没有选时间的时候给他默认的时间
  • 英特尔汽车业务败走中国,喊出“All in”才过两个月
  • 【机器学习深度学习】线性回归
  • 供应链数据可视化大屏
  • 【Pandas】pandas DataFrame first_valid_index
  • Spring Boot 文件上传大小配置错误解决方案
  • 远程面试平台选声网视频通话提升候选人体验感
  • c++17标准std::filesystem常用函数
  • 微服务架构下面临的安全、合规审计挑战
  • 基于STM32的工业仓库环境智能监控系统设计
  • .NET测试工具Parasoft dotTEST内置安全标准,编码合规更高效
  • Java 大视界 -- 基于 Java 的大数据可视化在智慧城市能源消耗动态监测与优化决策中的应用(324)
  • 单RV的ROI区域算法guess
  • Java底层原理:深入理解线程与并发机制
  • window显示驱动开发—支持 DXGI DDI(四)
  • SpringBoot 中 @Transactional 的使用
  • 【开源工具】Windows一键配置防火墙阻止策略(禁止应用联网)| 附完整Python源码
  • 第一章-人工智能概述-深度学习与AI发展(2/36)
  • DAY 43 复习日
  • 二极管、三极管(BJT)、MOSFET、IGBT 以及 场效应管(FET) 的分类详解
  • gitee推送代码权限问题Permission denied (publickey)
  • LeetCode刷题-top100(和为 K 的子数组)
  • 关于物联网的基础知识(一)
  • zabbix监控Centos 服务器
  • uni-app的UTS插件开发,调用鸿蒙原生API
  • 闲庭信步使用SV搭建图像测试平台:第十三课——谈谈SV的数据类型
  • 微信小程序<rich-text>支持里面图片点击放大
  • react-嵌套路由 二级路由
  • python 爬虫 下载视频