LeetCode 拨号

GA666666 2021-05-26 PM 19℃ 0条

这段代码还是挺有纪念意义的,从5.20到今天5.26晚上差不多一周时间,几乎把迷宫问题写烂了,但还是远远不够,甚至现在有点分不清dfs和bfs了,刚看了一下总结:dfs:有回溯的就是说在函数里调用了自己后把之前的状态修改回来 bfs基本上就是使用了队列。废话不多数,接下来是LeetCode中的一道题,好像是45题左右。题目是这样的:一个九键输入法,每个按键上有对应的英文数字,现在输入任意的数字,求组合后的按键序列。这道题比较像bilibili一个大神讲的递归ABC排列组合,这次代码一次跑通太开心了,上代码
代码:

import java.util.Stack;

public class T9 {
    public static void main(String[] args) {
        char[][] ch = {{'A', 'B', 'C'}, {'D', 'E', 'F'}};
        boolean[] flags = new boolean[ch.length];
        dfs(ch, flags);
    }

    static Stack res = new Stack();

    private static void dfs(char[][] ch, boolean[] flags) {
        if (res.size() == 2) {
            System.out.print(res + "\t");
            return;
        } else {
            for (int i = 0; i < ch.length; i++) {
                if (flags[i] == false) {
                    for (int j = 0; j < ch[i].length; j++) {
                        flags[i] = true;
                        res.push(ch[i][j]);
                        dfs(ch, flags);
                        flags[i] = false;
                        res.pop();
                    }
                }
            }
        }
    }
}

部分运行结果:请输入图片描述

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~