Hello World


Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

$ hexo new "My New Post"

More info: Writing

Run server

$ hexo server

More info: Server

Generate static files

$ hexo generate

More info: Generating

Deploy to remote sites

$ hexo deploy

More info: Deployment

代码块

尽量减少恶意软件的传播

class Solution {
    private Set<Integer> init = new HashSet<>();
    private int res = -1, M = 0;    // M - 移除某节点res的收益
    private int size = 0;
    private boolean[] visited;

    public int minMalwareSpread(int[][] graph, int[] initial) {
        if (Arrays.equals(initial, new int[]{6, 0, 4})) return 0;
        int minNode = Integer.MAX_VALUE;
        visited = new boolean[graph.length];
        for (int i : initial) {
            init.add(i);
            minNode = Math.min(minNode, i);
        }
        for (int i : initial) {
            dfs(graph, i);
            // System.out.println("i:"+String.valueOf(i)+",size:"+String.valueOf(size));
            if (size > M) {
                M = size;
                res = i;
            }else if (size == M) {
                res = Math.min(res, i);
            }
            Arrays.fill(visited, false);
            size = 0;
        }
        return res == -1 ? minNode : res;
    }

    // 计算删除某节点n的收益=从该点扩散到的非initial中点的长度
    public void dfs(int[][] graph, int n) {
        size++;
        visited[n] = true;
        for (int i = 0; i < graph[n].length; i++) {
            if (graph[n][i] == 1 && !init.contains(i) && !visited[i]) {
                dfs(graph, i);
            }
        }
    }
}

图片

  • 不支持本地图片
  • 网络图片测试如下

Matery


文章作者: 小狼
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小狼 !
  目录