文章

每日LeetCode 185-186

2021.5.28 ・ 共 667 字,您可能需要 2 分钟阅读

Tags: LeetCode

输入一个字符串,打印出该字符串中字符的所有排列。

你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。

示例:

输入:s = “abc” 输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]

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

class Solution {
    List<Character> path = new ArrayList<>();
    Set<String> ans = new HashSet<>();

    public String[] permutation(String s) {
        if (s.length() == 0) {
            return ans.toArray(new String[ans.size()]);
        }
        boolean[] used = new boolean[s.length()];
        backTrack(s, used);
        return ans.toArray(new String[ans.size()]);
    }

    public void backTrack(String s, boolean[] used) {
        if (path.size() == s.length()) {
            String string = path.toString();
            string = string.replace("[", "");
            string = string.replace(",", "");
            string = string.replace("]", "");
            string = string.replace(" ", "");
            ans.add(string);
            return;
        }
        for (int i = 0; i < s.length(); i++) {
            if (used[i] == true) {
                continue;
            }
            used[i] = true;
            path.add(s.charAt(i));
            backTrack(s, used);
            path.remove(path.size() - 1);
            used[i] = false;
        }
    }
}

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public int majorityElement(int[] nums) {
        int votes = 0;
        int ans = 0;
        for (int n : nums) {
            if (votes == 0) {
                ans = n;
                votes++;
            } else {
                if (ans == n) {
                    votes++;
                } else {
                    votes--;
                }
            }
        }
        return ans;
    }
}