首页 > 其他 > 详细

Leetcode练习之分治

时间:2020-04-13 21:38:13      阅读:61      评论:0      收藏:0      [点我收藏+]

1. 给表达式加括号

241. Different Ways to Add Parentheses (Medium)

 

class Solution {
    public List<Integer> diffWaysToCompute(String input) {
        List<Integer> ways = new ArrayList<>();
        for(int i = 0; i < input.length();i++){
            char c = input.charAt(i);
            if(c == ‘+‘ || c == ‘-‘ || c == ‘*‘){
                List<Integer> left = diffWaysToCompute(input.substring(0,i));
                List<Integer> right = diffWaysToCompute(input.substring(i + 1));
                for(int l : left) {
                    for(int r : right) {
                        switch(c) {
                            case ‘+‘:
                            ways.add(l + r);
                            break;
                            case ‘-‘:
                            ways.add(l - r);
                            break;
                            case ‘*‘:
                            ways.add(l * r);
                            break;
                        }
                    }
                }
            }
        }
        if(ways.size() == 0){
            ways.add(Integer.valueOf(input));
        }
        return ways;
    }
}

 

2. 不同的二叉搜索树

95. Unique Binary Search Trees II (Medium)

Leetcode练习之分治

原文:https://www.cnblogs.com/coding-fairyland/p/12693758.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!