thảo luận Leetcode mỗi ngày

  • Người tạo chủ đề Người tạo chủ đề _Gia_Cat_Luong_
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
đm leetcode
4gmOAMB.png

Java:
class Solution {
    public String nearestPalindromic(String n) {
        int len = n.length();
        long min = Long.MAX_VALUE;
        long ans = 0;
        ArrayList<Long> list = new ArrayList<Long>();
        StringBuilder sb = new StringBuilder();
        String leftHalf = "";
        if(len%2 == 0)
            leftHalf = n.substring(0,len/2);
        else
            leftHalf = n.substring(0,len/2+1);
        long left = Long.parseLong(leftHalf);
        list.add((long)Math.pow(10,len)+1);
        list.add((long)Math.pow(10,len)-1);
        list.add(generatePalindrome(left+1, len));
        list.add(generatePalindrome(left,len));
        list.add(generatePalindrome(left-1,len));
        list.add((long)Math.pow(10,len-1)+1);
        list.add((long)Math.pow(10,len-1)-1);
        long num = Long.parseLong(n);
        for(long pal:list){
            if(Math.abs(pal-num)<=min && pal!=num){
                min = Math.abs(pal-num);
                ans = pal;
            }
        }
        return Long.toString(ans);
    }
           
    public static long generatePalindrome(long left,int len) {
        StringBuilder sb = new StringBuilder();
        sb.append(left);
        StringBuilder reverse = new StringBuilder(sb.toString()).reverse();
        if(len%2==0)
            sb.append(reverse);
        else
            sb.append(reverse.substring(1,sb.length()));
        return Long.parseLong(sb.toString());
    }
}
:eek: Nhìn thủ công z mike fence?
 
Cơm khô khó nuốt quá @freedom.9 :mad: còn thiếu 4 bài
Java:
class Solution {
    long fuel;

    public long minimumFuelCost(int[][] roads, int seats) {
        fuel = 0L;
        int n = roads.length + 1;
        int[] dp = new int[n];
      
        List<Integer>[] g = new List[n];
        for (int i = 0; i < n; i++) {
            g[i] = new ArrayList<>();
        }


        for (int[] road: roads) {
            g[road[0]].add(road[1]);
            g[road[1]].add(road[0]);
        }

        dfs(0, -1, g, seats);
      
        return fuel;
    }

    private int dfs(int city, int parent, List<Integer>[] g, int seats) {
        int ans = 1;

        for (int adj: g[city]) {
            if (adj != parent) {
                int people = dfs(adj, city, g, seats);
                ans += people;
                fuel += (long) Math.ceil((double)people/seats);
            }
        }

        return  ans;
    }
}

Java:
class Solution {
    public int[] numMovesStonesII(int[] stones) {
        Arrays.sort(stones);
        int n = stones.length;
        int maxMoves = stones[n - 1] - stones[0] + 1 - n;
        int minMoves = Integer.MAX_VALUE;

        maxMoves -= Math.min(stones[1] - stones[0], stones[n - 1] - stones[n - 2]) - 1;

        int j = 0;
        for (int i = 0; i < n; i++) {
            while (j < n && stones[j] - stones[i] + 1 <= n) {
                j++;
            }

            int alreadyInPlace = j - i;

            if (alreadyInPlace == n - 1 && stones[j - 1] - stones[i] == n - 2) {
                minMoves = Math.min(minMoves, 2);
            } else {
                minMoves = Math.min(minMoves, n - alreadyInPlace);
            }
        }

        return new int[]{minMoves, maxMoves};
    }
}
Hơi chậm, đề nghị bấm giờ giải 20ph 1 bài ko giải đc xem solution :doubt:
 
Mã:
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        def dfs(node):
            if not node: return
            dfs(node.left)
            dfs(node.right)
            res.append(node.val)
        dfs(root)
        return res
 
Python:
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        ans = []
        stack = [root]
        while stack:
            current = stack.pop()
            ans.append(current.val)
            if current.left:
                stack.append(current.left)
            if current.right:
                stack.append(current.right)
        ans.reverse()
        return ans
 
Java:
class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> list = new ArrayList<>();
        if (root == null)
            return list;
        
        Stack<TreeNode> stack = new Stack<>();
        stack.push(root);
        while (!stack.isEmpty())
        {
            TreeNode node = stack.pop();
            list.add(node.val);
            if (node.left != null)
                stack.push(node.left);
            if (node.right != null)
                stack.push(node.right);
        }
        
        for (int i = 0; i < list.size() / 2; i++)
        {
            int temp = list.get(i);
            list.set(i, list.get(list.size() - 1 - i));
            list.set(list.size() - 1 - i, temp);
        }
        
        return list;
    }
}
 
PHP:
class Solution {

    /**
     * @param TreeNode $root
     * @return Integer[]
     */
    function postorderTraversal($root) {
        $ans = [];
        $this->traversal($root, $ans);
        return $ans;
    }

    function traversal($root, &$ans) {      
        if (!$root) return;

        // check left
        $this->traversal($root->left, $ans);

        // check right
        $this->traversal($root->right, $ans);

        $ans[] = $root->val;
    }
}
 
Swift:
class Solution {
    func postorderTraversal(_ root: TreeNode?) -> [Int] {
        var result:[Int] = []
        func dfs(_ tree: TreeNode?) {
            guard let tree else { return }
            dfs(tree.left)
            dfs(tree.right)
            result.append(tree.val)
        }
        dfs(root)
        return result
    }
}
 
Java:
class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList();
        recursion(res, root);
        return res;
    }
    public void recursion(List<Integer> res, TreeNode node){
        if(node == null) return ;
        recursion(res, node.left);
        recursion(res, node.right);
        
        res.add(node.val);
    }
}
 
Python:
class Solution:
    def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        result = []
        
        def lrn(node):
            if node is None:
                return
            lrn(node.left)
            lrn(node.right)
            result.append(node.val)
        lrn(root)
        return result
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
_Gia_Cat_Luong_,
Người trả lời cuối
Vipluckystar,
Trả lời
17.755
Lượt xem
1.212.557
Quay lại
Lên đầu trang