国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[LeetCode] Kill Process

jone5679 / 640人閱讀

Problem

Given n processes, each process has a unique PID (process id) and its PPID (parent process id).

Each process only has one parent process, but may have one or more children processes. This is just like a tree structure. Only one process has PPID that is 0, which means this process has no parent process. All the PIDs will be distinct positive integers.

We use two list of integers to represent a list of processes, where the first list contains PID for each process and the second list contains the corresponding PPID.

Now given the two lists, and a PID representing a process you want to kill, return a list of PIDs of processes that will be killed in the end. You should assume that when a process is killed, all its children processes will be killed. No order is required for the final answer.

Example

Example 1:
Input:
pid = [1, 3, 10, 5]
ppid = [3, 0, 5, 3]
kill = 5
Output: [5,10]
Explanation:

       3
     /   
    1     5
         /
        10

Kill 5 will also kill 10.
Note:
The given kill id is guaranteed to be one of the given PIDs.
n >= 1.

Solution
class Solution {
    public List killProcess(List pid, List ppid, int kill) {
        List res = new ArrayList<>();
        if (pid == null || pid.size() == 0) return res;
        Map> map = new HashMap<>();
        for (Integer id: pid) {
            map.put(id, new HashSet());
        }
        for (int i = 0; i < ppid.size(); i++) {
            int id = ppid.get(i);
            if (map.containsKey(id)) {
                map.get(id).add(pid.get(i));
            }
        }
        traverse(kill, map, res);
        return res;
    }
    public void traverse(int kill, Map> map, List res) {
        res.add(kill);
        Set children = map.get(kill);
        for (Integer child: children) {
            traverse(child, map, res);
        }
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/76791.html

相關(guān)文章

  • Python實現(xiàn)配置熱加載的方法

      小編寫這篇文章的目的,主要是給大家講解一下,關(guān)于實現(xiàn)配置熱加載的方法,具體是怎么操作呢?下面就給大家詳細(xì)的解答下。  背景  由于最近有相關(guān)的工作需求,需要進行增添相關(guān)的新功能,實現(xiàn)配置熱加載的功能。所謂的配置熱加載,也就是說當(dāng)服務(wù)收到配置更新消息之后,我們不用重啟服務(wù)就可以使用最新的配置去執(zhí)行任務(wù)。  如何實現(xiàn)  下面我分別采用多進程、多線程、協(xié)程的方式去實現(xiàn)配置熱加載。  使用多進程實現(xiàn)配...

    89542767 評論0 收藏0
  • 優(yōu)雅地關(guān)閉kubernetes中的nginx

    摘要:被設(shè)計為這樣一種方式,父進程必須明確地等待子進程終止,以便收集它的退出狀態(tài)。會完成的刪除,將優(yōu)雅退出的時間設(shè)置為表示立即刪除。 SIGINT SIGTERM SIGKILL區(qū)別 三者都是結(jié)束/終止進程運行。 1.SIGINT SIGTERM區(qū)別 前者與字符ctrl+c關(guān)聯(lián),后者沒有任何控制字符關(guān)聯(lián)。前者只能結(jié)束前臺進程,后者則不是。 2.SIGTERM SIGKILL的區(qū)別 前者可以被...

    Noodles 評論0 收藏0
  • 優(yōu)雅地關(guān)閉kubernetes中的nginx

    摘要:被設(shè)計為這樣一種方式,父進程必須明確地等待子進程終止,以便收集它的退出狀態(tài)。會完成的刪除,將優(yōu)雅退出的時間設(shè)置為表示立即刪除。 SIGINT SIGTERM SIGKILL區(qū)別 三者都是結(jié)束/終止進程運行。 1.SIGINT SIGTERM區(qū)別 前者與字符ctrl+c關(guān)聯(lián),后者沒有任何控制字符關(guān)聯(lián)。前者只能結(jié)束前臺進程,后者則不是。 2.SIGTERM SIGKILL的區(qū)別 前者可以被...

    余學(xué)文 評論0 收藏0
  • 模擬nginx熱部署

    摘要:熱部署,就是在應(yīng)用正在運行的時候升級軟件,卻不需要重新啟動應(yīng)用。熱部署的流程是備份舊的可執(zhí)行文件新的可執(zhí)行文件直接替換舊的此時舊的進程還在運行向進程發(fā)送熱部署信號,新的進程啟動,舊的不再就收請求。關(guān)閉舊的進程,完成熱部署。 熱部署,就是在應(yīng)用正在運行的時候升級軟件,卻不需要重新啟動應(yīng)用。 首先在本地模擬一個線上需要升級 Nginx 的環(huán)境,假設(shè)舊版本為 nginx-1.0.15,需要升...

    caige 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<