力扣新手村之1342、1672、412-智能开发牛翰社区-人工智能-牛翰网

力扣新手村之1342、1672、412

1342[将数字变成0的操作次数]

题目

链接

LeetCode1342[将数字变成0的操作次数]

详情

实例

实例1

实例2

实例3

提示

题解

思路

判断 num 是否为0

不为0则判断 num 是否为偶数

num 是偶数则除以2

num 不是偶数则减1

操作次数加1

重复上述步骤,直到 num 为0,返回操作次数

代码

class Solution {
public:
    int numberOfSteps(int num) {
        int iCount = 0;
        while (num)
        {
            if (0 == (num % 2))
                num /= 2;
            else 
                num -= 1;
            
            iCount++;
        }

        return iCount;
    }
};

1672[最富有客户的资产总量]

题目

链接

LeetCode1672[最富有客户的资产总量]

详情

实例

实例1

实例2

实例3

提示

题解

思路

先定义一个最大值 iMax 设置为负值,保证资产为0时也可以被存储

再一次遍历每个人的所有资产,求和 iSum

之后比较 iSum 和 iMax 的大小

如果 iSum 大于 iMax 则将 iSum 的值赋给 iMax,即 iMax = iSum,保证 iMax 存储的是最大值

最后输出 iMax

代码

class Solution {
public:
    int maximumWealth(vector<vector<int>>& accounts) {
        int iMax = -1;

        for (int i = 0; i < accounts.size(); i++)
        {
            int iSum = 0;
            
            for (int j = 0; j < accounts.at(i).size(); j++)
                iSum += accounts.at(i).at(j);
                
            if (iMax < iSum)
                iMax = iSum;
        }

        return iMax;
    }
};

412[Fizz Buzz]

题目

链接

LeetCode412[Fizz Buzz]

详情

实例

实例1

实例2

实例3

提示

题解

思路

定义一个容器 sRetVec,依次遍历每一个数

如果可以被3和5同时整除,则在容器内加入一个元素”FizzBuzz”,即 1 == ((0 == (num % 3)) && (0 == (num % 5)))成立,sRetVec.push_back("FizzBuzz")继续遍历下一个数

如果可以被3整除,则在容器内加入一个元素”Fizz”,即 0 == (num % 3)成立,sRetVec.push_back("Fizz")继续遍历下一个数

如果可以被3整除,则在容器内加入一个元素”Buzz”,即 0 == (num % 5)成立,sRetVec.push_back("Buzz")继续遍历下一个数 

如果均不行,则将数值转换为字符串并加入容器,即sprintf(buff, "%d", num)//char buff[10] = { 0 };sRetVec.push_back(buff)继续遍历下一个数 

最后遍历完输出容器

代码

class Solution {
public:
    vector<string> fizzBuzz(int n) {
        vector<string> sRetVec;

        for (int i = 1; i < n + 1; i++)
        {
            if ((0 == (i % 3)) && (0 == (i % 5)))
                sRetVec.push_back("FizzBuzz");
            else if (0 == (i % 3))
                sRetVec.push_back("Fizz");
            else if (0 == (i % 5))
                sRetVec.push_back("Buzz");
            else
            {
                char buff[10] = { 0 };
                sprintf(buff, "%d", i);
                sRetVec.push_back(buff);
            }
        }
        return sRetVec;
    }
};

 

请登录后发表评论

    没有回复内容