前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift 3的幂 - LeetCode

Swift 3的幂 - LeetCode

作者头像
韦弦zhy
发布2018-09-11 12:43:27
8610
发布2018-09-11 12:43:27
举报

LeetCode

题目: 3的幂
描述:给定一个整数,写一个函数来判断它是否是 3 的幂次方。

案例1:

代码语言:javascript
复制
输入: 27
输出: true

示例 2:

代码语言:javascript
复制
输入: 0
输出: false

案例 3:

代码语言:javascript
复制
输入: 9
输出: true

案例 4:

代码语言:javascript
复制
输入: 45
输出: false
方案一:使用循环,当整数除3的余数不为0时,不是3的幂,整数一直除3,最后值为1,则该整数是3的幂
代码一:
代码语言:javascript
复制
func isPowerOfThree(_ n: Int) -> Bool {
    if n < 1 {
        return false
    }
    if n == 1 {
        return true
    }
    var s = n
    while s > 1 {
        if s % 3 != 0 {
            return false
        }
        s = s / 3
    }
    
    return true
}
执行用时320ms
方案二:3的幂有个特性,他的约数必是3的幂,所以可以求一个不溢出情况下的最大3的幂整数去除所需要判断的值,如果余数为0,则是3的幂
代码二:
代码语言:javascript
复制
return n > 0 && (Int(pow(Double(3), Double(33))) % n == 0)

为啥是33、、、嗯,自己试试就知道了。。。、、、然后这个执行用时,有时300多,有时200多、、、我也是不知道为什么

进阶执行用时

用Swift开始学习算法中,在LeetCode中开始做初级算法这一章节,将做的题目在此做个笔记,希望有更好方法同学们cue我哦。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目: 3的幂
    • 描述:给定一个整数,写一个函数来判断它是否是 3 的幂次方。
      • 方案一:使用循环,当整数除3的余数不为0时,不是3的幂,整数一直除3,最后值为1,则该整数是3的幂
        • 代码一:
        • 执行用时320ms
        • 方案二:3的幂有个特性,他的约数必是3的幂,所以可以求一个不溢出情况下的最大3的幂整数去除所需要判断的值,如果余数为0,则是3的幂
        • 代码二:
        • 用Swift开始学习算法中,在LeetCode中开始做初级算法这一章节,将做的题目在此做个笔记,希望有更好方法同学们cue我哦。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档