前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >华为招聘目的:不是筛选人才,而是筛选忠诚度。。

华为招聘目的:不是筛选人才,而是筛选忠诚度。。

作者头像
宫水三叶的刷题日记
发布2024-05-13 16:45:49
970
发布2024-05-13 16:45:49
举报

题目描述

平台:LeetCode

题号:1780

给你一个整数 n,如果你可以将 n 表示成若干个不同的三的幂之和,请你返回 true,否则请返回 false

对于一个整数 y,如果存在整数 x 满足 y == 3x,我们称这个整数 y 是三的幂。

示例 1:

代码语言:javascript
复制
输入:n = 12

输出:true

解释:12 = 31 + 32

示例 2:

代码语言:javascript
复制
输入:n = 91

输出:true

解释:91 = 30 + 32 + 34

示例 3:

代码语言:javascript
复制
输入:n = 21

输出:false

提示:

1 <= n <= 10^7

数学

这是一道考察「进制转换」基本认识的题目。

n 看作一个三进制数,例如对于

(210)_{3}

而言,其代表的是

2 \times 3^2 + 1 \times 3^1 + 0 \times 3^0

十进制数。

由于题目规定组成和的三的幂需要满足「不同」的条件,因此 n 所代表的三进制表示中的系数只能是

1

0

,而不是能是

2

Java 代码:

代码语言:javascript
复制
class Solution {
    public boolean checkPowersOfThree(int n) {
        while (n != 0) {
            if (n % 3 == 2) return false;
            n /= 3;
        }
        return true;
    }
}

C++ 代码

代码语言:javascript
复制
class Solution {
public:
    bool checkPowersOfThree(int n) {
        while (n != 0) {
            if (n % 3 == 2) return false;
            n /= 3;
        }
        return true;
    }
};

Python 代码

代码语言:javascript
复制
class Solution:
    def checkPowersOfThree(self, n: int) -> bool:
        while n != 0:
            if n % 3 == 2:
                return False
            n //= 3
        return True

TypeScript 代码:

代码语言:javascript
复制
function checkPowersOfThree(n: number): boolean {
    while (n != 0) {
        if (n % 3 == 2) return false
        n = Math.floor(n / 3)
    }
    return true
}
  • 时间复杂度:
O(\log{n})
  • 空间复杂度:
O(1)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宫水三叶的刷题日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 数学
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档