Advertisement

[E] lc2864. 最大二进制奇数 (模拟, 遍历)

阅读量:

文章结构概述

    • 1. 课题出处
      • 2. 问题分析

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)

还没有任何评论哟~