iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
自我挑戰組

30天leetcode學習旅程系列 第 20

項次 20 - Breadth-First Search

  • 分享至 

  • xImage
  •  

題目:112. Path Sum

連結:https://leetcode.com/problems/path-sum/description/

  • 等級:Easy

解題思路

  1. 計算路徑總合是否為目標總和,如為總合且無左右子樹,結為正確.
class Solution {  
    public boolean hasPathSum(TreeNode root, int targetSum) {
        if (root == null)
            return false;
        targetSum = targetSum - root.val;
        if (targetSum == 0)
        {
            if (root.left == null && root.right == null)
                return true;
            else
            {
                if(hasPathSum(root.left,targetSum))
                    return true;
                else
                    return hasPathSum(root.right,targetSum);
            }
                
        }
        else
        {
            if(hasPathSum(root.left,targetSum))
                return true;
            else
                return hasPathSum(root.right,targetSum);
        }
    }
}
  • Time complexity: O(n)
  • Space complexity: O(1)

題目:78. Subsets

連結:https://leetcode.com/problems/subsets/description/

  • 等級:Medium

解題思路

class Solution {
    public List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> rows = new ArrayList<List<Integer>>();
        rows.add(new ArrayList<Integer>());
        for (int i = 0;i < nums.length;i++)
        {
            int n = rows.size();
            for (int j = 0;j < n;j++)
            {
                
                List<Integer> save = new ArrayList(rows.get(j));
                save.add(nums[i]);
                rows.add(save);
            }
        }
        return rows;
    }

  • Time complexity: O(n)
  • Space complexity: O(1)

上一篇
項次 19 - Breadth-First Search
下一篇
項次 21 - backtracking-2
系列文
30天leetcode學習旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言