1. 题目

给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。

如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。

示例 1:
输入:1
输出:true示例 2:
输入:10
输出:false示例 3:
输入:16
输出:true示例 4:
输入:24
输出:false示例 5:
输入:46
输出:true提示:
1 <= N <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reordered-power-of-2
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 排序

  • 将数字转成字符串,并排序
  • 枚举32位的所有2的次幂的数,转字符串,并排序,跟上面字符串比较即可
class Solution {public:bool reorderedPowerOf2(int N) {string origin(to_string(N));string powerTwo;sort(origin.begin(), origin.end());for(int i = 0; i < 32; ++i){powerTwo = to_string(1<<i);sort(powerTwo.begin(), powerTwo.end());if(powerTwo == origin)return true;}return false;}
};

2.2 全排列

class Solution {bool ans = false;
public:bool reorderedPowerOf2(int N) {string origin(to_string(N));bt(origin,0);return ans;}void bt(string str, int i){if(ans == true || i == str.size())return;for(int j = i; j < str.size(); ++j){swap(str[i],str[j]);if(str[0]!='0' && isPowerTwo(stoi(str)))ans = true;bt(str,i+1);swap(str[i],str[j]);}}bool isPowerTwo(int n){return (n&(n-1)) == 0;}
};

LeetCode 869. 重新排序得到 2 的幂(排序 全排列)相关推荐

  1. 869. 重新排序得到 2 的幂

    869. 重新排序得到 2 的幂 给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零. 如果我们可以通过上述方式得到 2 的幂,返回 true:否则,返回 fals ...

  2. Leecode 869. 重新排序得到 2 的幂——Leecode每日一题系列

    题目链接:https://leetcode-cn.com/problems/reordered-power-of-2/ 题目 给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导 ...

  3. [算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置

    LeetCode 专题 – 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置 难度:中等 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值 ...

  4. 《LeetCode力扣练习》第46题 全排列 Java

    <LeetCode力扣练习>第46题 全排列 Java 一.资源 题目: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输 ...

  5. LeetCode简单题之数组的相对排序

    题目 给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中. 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相 ...

  6. LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置

    前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...

  7. leetcode869. 重新排序得到 2 的幂

    题目连接:https://leetcode-cn.com/problems/reordered-power-of-2/ 题目分析 如果直接顺着题目的思路,得到数字n的全排列,然后再去判断其是不是2的幂 ...

  8. LeetCode 2050. 并行课程 III(拓扑排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n ,表示有 n 节课,课程编号从 1 到 n . 同时给你一个二维整数数组 relations ,其中 relations[j] = [p ...

  9. LeetCode meituan-003. 小美的跑腿代购(排序)

    文章目录 1. 题目 2. 解题 1. 题目 小美的一个兼职是美团的一名跑腿代购员,她有 n 个订单可以接,订单编号是 1~n , 但是因为订单的时效性,他只能选择其中 m 个订单接取,精明的小美当然 ...

最新文章

  1. 系统架构师-基础到企业应用架构-表现层
  2. AI芯片评测如何与时俱进?地平线提出全新MAPS评测方法,帮助用户理解AI芯片性能...
  3. oracle如何降低逻辑读,如何降低该SQL的逻辑读
  4. RecycleView弹性滑动
  5. 计算机专业的双证在职研究生,计算机类在职研究生最终能获得双证吗难度是不是很大呢...
  6. grav html5,如何通过html5实现摇一摇的功能
  7. laravel 的用户认证
  8. 与代码无关的React Native常识
  9. Android——ViewHolder
  10. Spring Guide:Securing a Web Application(中文大概意思)
  11. 华为2019年4月10日春招笔试题解
  12. 博弈论——完全信息博弈
  13. 计算机管理员绩效指标,网络管理员绩效kpi考核标准..doc
  14. html加载三维地图,Cesium加载三维地形及WMS地图,并实现动态控制显示
  15. 身体不同部位锻炼相关英语表达
  16. BroadcastReceiver插件化
  17. 高新技术企业申报材料汇编
  18. oracle怎么查临时表,Oracle查询问题引发临时表使用
  19. windows定时关机命令 取消定时关机命令 查看DNS缓存命令 清除DNS缓存命令
  20. 使用attrib命令修复隐藏的文件夹

热门文章

  1. 信息摘要技术及算法介绍
  2. 深度残差网络ResNet解析
  3. 【C#学习笔记】使用C#中的Dispatcher
  4. jquery post php返回html,jquery ajax post 提交数据,返回的是当前网页的html?
  5. html加载js文件失败,firefox/chrome动态设置script加载js文件失败
  6. 用mongo实现mysql视图_浅谈 MongoDB 的视图
  7. 《数据结构与算法分析》学习笔记(二)——算法分析
  8. k8s基础学习-存储卷
  9. 1、绪论初识机器学习
  10. .NET面试题系列(七)IIS