LeetCode Day7

    xiaoxiao2022-07-07  197

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

    输入:1 输出:true

    示例 2:

    输入:10 输出:false

    示例 3:

    输入:16 输出:true

    示例 4:

    输入:24 输出:false

    示例 5:

    输入:46 输出:true

    提示: 1 <= N <= 10^9 解: 执行用时 : 7 ms, 在Reordered Power of 2的Java提交中击败了64.56% 的用户 内存消耗 : 33.6 MB, 在Reordered Power of 2的Java提交中击败了68.57% 的用户 思路:将N转为char数组后排序,找出1到10*N中所有2的幂次的数,排序后对比即可 Code:

    class Solution { public boolean reorderedPowerOf2(int N) { char arr[]=(N+"").toCharArray(); Arrays.sort(arr); for(long i=1;i<(long)10*N;){ char arr1[]=(i+"").toCharArray(); Arrays.sort(arr1); if(Arrays.equals(arr,arr1)) return true; i*=2; } return false; } }

    145. 二叉树的后序遍历 难度:困难 给定一个二叉树,返回它的 后序 遍历。

    示例:

    输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]

    进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解: 执行用时 : 1 ms, 在Binary Tree Postorder Traversal的Java提交中击败了97.20% 的用户 内存消耗 : 33.9 MB, 在Binary Tree Postorder Traversal的Java提交中击败了78.07% 的用户 思路:递归,非递归则使用栈做根右左的 Code:

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public List<Integer> list=new ArrayList<>(); public List<Integer> postorderTraversal(TreeNode root) { recursion(root); return list; } void recursion(TreeNode node){ if(node==null) return; if(node.left!=null) recursion(node.left); if(node.right!=null) recursion(node.right); list.add(node.val); return; } }
    最新回复(0)