[E] lc2864. 最大二进制奇数 (模拟, 遍历)
发布时间
阅读量:
阅读量
文章结构概述
-
- 1. 课题出处
- 2. 问题分析
- 1. 课题出处
1. 题目来源
相关资源可通过以下链接进行访问:2864. 最大二进制奇数
题目解析与研究框架
整体思路较为明确,即通过计算字符串中1的总数,随后将其中一个1移至末尾以确保数值为奇数,其余的1则置于高位位置即可完成操作。
另外,也可以采用排序的方式处理,此时字符串的首字符必定为1,将其移动至末尾即可达成目标。然而,该方法的执行效率会受到排序算法的影响,相较之下不如前一种基于统计1数量的方法高效。
- 时间复杂度 :O(n)
- 空间复杂度 :O(1)
class Solution {
public:
string maximumOddBinaryNumber(string s) {
int cnt = count(s.begin(), s.end(), '1');
return string(cnt - 1, '1') + string(s.length() - cnt, '0') + '1';
全部评论 (0)
还没有任何评论哟~
