1583. 統計不開心的朋友

1583. 統計不開心的朋友

給你一份 n 位朋友的親近程度列表,其中 n 總是 偶數 。

對每位朋友 i,preferences[i] 包含一份 按親近程度從高到低排列 的朋友列表。換句話說,排在列表前面的朋友與 i 的親近程度比排在列表后面的朋友更高。每個列表中的朋友均以 0 到 n-1 之間的整數表示。

所有的朋友被分成幾對,配對情況以列表 pairs 給出,其中 pairs[i] = [xi, yi] 表示 xi 與 yi 配對,且 yi 與 xi 配對。

但是,這樣的配對情況可能會是其中部分朋友感到不開心。在 x 與 y 配對且 u 與 v 配對的情況下,如果同時滿足下述兩個條件,x 就會不開心:

x 與 u 的親近程度勝過 x 與 y,且
u 與 x 的親近程度勝過 u 與 v
返回 不開心的朋友的數目 。

示例 1:

輸入:n = 4, preferences = [[1, 2, 3], [3, 2, 0], [3, 1, 0], [1, 2, 0]], pairs = [[0, 1], [2, 3]]
輸出:2
解釋:
朋友 1 不開心,因為:

  • 1 與 0 配對,但 1 與 3 的親近程度比 1 與 0 高,且
  • 3 與 1 的親近程度比 3 與 2 高。
    朋友 3 不開心,因為:
  • 3 與 2 配對,但 3 與 1 的親近程度比 3 與 2 高,且
  • 1 與 3 的親近程度比 1 與 0 高。
    朋友 0 和 2 都是開心的。
    示例 2:

輸入:n = 2, preferences = [[1], [0]], pairs = [[1, 0]]
輸出:0
解釋:朋友 0 和 1 都開心。
示例 3:

輸入:n = 4, preferences = [[1, 3, 2], [2, 3, 0], [1, 3, 0], [0, 2, 1]], pairs = [[1, 3], [0, 2]]
輸出:4

提示:

2 <= n <= 500
n 是偶數
preferences.length?== n
preferences[i].length?== n - 1
0 <= preferences[i][j] <= n - 1
preferences[i] 不包含 i
preferences[i] 中的所有值都是獨一無二的
pairs.length?== n/2
pairs[i].length?== 2
xi != yi
0 <= xi, yi?<= n - 1
每位朋友都 恰好 被包含在一對中

解題思路

  • 使用數組l[i][j][k]=true記錄對于i來說j的親密度大于k
  • 使用map記錄下,每個朋友配對的另一位朋友
  • 對每一位朋友x,檢查其余的所有朋友u,y為x的配對朋友,v為u的配對朋友
  • 如果存在x 與 u 的親近程度勝過 x 與 y,u 與 x 的親近程度勝過 u 與 v,那么就將x和u加入不開心朋友的集合

代碼

class Solution {public int unhappyFriends(int n, int[][] preferences, int[][] pairs) {//l[i][j]boolean[][][] l=new boolean[n][n][n];for (int k=0;k<n;k++) {for (int i=0;i<n-2;i++)for (int j=i+1;j<n-1;j++)l[k][preferences[k][i]][preferences[k][j]]=true;}Map<Integer,Integer>map=new HashMap<>();for (int[] pair : pairs) {map.put(pair[0],pair[1]);map.put(pair[1],pair[0]);}int cnt=0;Set<Integer> set=new HashSet<>();for (int i=0;i<n;i++){int o1=i,o2=map.get(i);for (int j=0;j<n;j++){if (j==o1||j==o2) continue;if (l[i][j][o2]&&l[j][i][map.get(j)]){set.add(i);set.add(j);}}}return set.size();}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390313.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390313.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390313.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uva 247(floyd傳遞閉包)

為什么&#xff0c;逗號后面&#xff0c;還有空格........ #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #include <vector> #include <map> using namespace std; const int maxn50; int d[maxn][max…

VS Code 的常用快捷鍵和插件

注:文章摘自 風行天下一萬號 - 博客園 vs code 的常用快捷鍵 1、注釋&#xff1a; 單行注釋&#xff1a;[ctrlk,ctrlc] 或 ctrl/取消單行注釋&#xff1a;[ctrlk,ctrlu] (按下ctrl不放&#xff0c;再按k u)多行注釋&#xff1a;[altshiftA]多行注釋&#xff1a;/**2、移動行&a…

python包numpy_NumPy Python科學計算軟件包的終極指南

python包numpyNumPy (pronounced "numb pie") is one of the most important packages to grasp when you’re starting to learn Python.NumPy(讀作“麻木派”)是您開始學習Python時要掌握的最重要的軟件包之一。 The package is known for a very useful data str…

NGINX原理 之 SLAB分配機制(轉)

1 引言 眾所周知&#xff0c;操作系統使用伙伴系統管理內存&#xff0c;不僅會造成大量的內存碎片&#xff0c;同時處理效率也較低下。SLAB是一種內存管理機制&#xff0c;其擁有較高的處理效率&#xff0c;同時也有效的避免內存碎片的產生&#xff0c;其核心思想是預分配。其按…

apk之間數據共享的方式

1、四大組件之ContentProvider大法2、shareUserId3、apk均去遠端獲取配置文件&#xff08;或接口&#xff09;4、AIDL&#xff08;bindService&#xff09;5、SharePreference設置為MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE模式&#xff0c;由于存在安全問題&#xff0c;已被…

藍橋杯java 基礎練習 十六進制轉十進制

問題描述從鍵盤輸入一個不超過8位的正的十六進制數字符串&#xff0c;將它轉換為正的十進制數后輸出。注&#xff1a;十六進制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。樣例輸入FFFF樣例輸出65535import java.math.BigInteger; import java.util.Scanner;public …

dynamic web module消失不見

2019獨角獸企業重金招聘Python工程師標準>>> 方法1&#xff1a;在project Facets選項中勾選Dynamic Web Module即可 方法2&#xff1a; 我用eclipse對項目進行修改名稱&#xff0c;修改成功后。項目就沒有Deployment Descriptor&#xff08;如下圖紅色框中&#xff…

576. 出界的路徑數

576. 出界的路徑數 給你一個大小為 m x n 的網格和一個球。球的起始坐標為 [startRow, startColumn] 。你可以將球移到在四個方向上相鄰的單元格內&#xff08;可以穿過網格邊界到達網格之外&#xff09;。你 最多 可以移動 maxMove 次球。 給你五個整數 m、n、maxMove、star…

telnet命令發送郵件

下面的例子是用qq的smtp服務器。 set localecho 本地回顯啟用 telnet smtp.qq.com 25 220 smtp.qq.com Esmtp QQ Mail Server helo sis 250 smtp.qq.com//服務器返回250 smtp.qq.com STARTTLS 220 Ready to start TLS//服務器返回 220 準備開啟TLS通訊 auth login 334 VXNlcm5h…

myelcipse和maven搭建項目

偷懶一下&#xff0c;完了補充 轉載&#xff1a;https://www.cnblogs.com/jr1260/p/6438811.html https://www.cnblogs.com/yangmingyu/p/6908519.html https://www.cnblogs.com/henuyuxiang/p/6288476.html 轉載于:https://www.cnblogs.com/0914lx/p/8342343.html

551. 學生出勤記錄

551. 學生出勤記錄 I 給你一個字符串 s 表示一個學生的出勤記錄&#xff0c;其中的每個字符用來標記當天的出勤情況&#xff08;缺勤、遲到、到場&#xff09;。記錄中只含下面三種字符&#xff1a; ‘A’&#xff1a;Absent&#xff0c;缺勤 ‘L’&#xff1a;Late&#xff…

JavaScript實現職責鏈模式

什么是職責鏈模式 職責鏈模式的定義是&#xff1a;使多個對象都有機會處理請求&#xff0c;從而避免請求的發送者和接收者之間的耦合關系&#xff0c;將這些對象連成一條鏈&#xff0c;并沿著這條鏈傳遞該請求&#xff0c;直到有一個對象處理它為止。舉個例子&#xff1a;當你從…

Metrics介紹和Spring的集成

參考&#xff1a; http://colobu.com/2014/08/08/Metrics-and-Spring-Integration/ https://www.cnblogs.com/yangecnu/p/Using-Metrics-to-Profiling-WebService-Performance.html

配置 aws cli_AWS CLI教程–如何安裝,配置和使用AWS CLI了解您的資源環境

配置 aws cliHow to get exactly the account and environment information you need to manage your AWS account using just the AWS CLI如何僅使用AWS CLI準確獲取管理AWS賬戶所需的賬戶和環境信息 Installing the AWS CLI is actually quite simple. The best way to get …

grep遞歸查找頭文件_Grep命令教程–如何使用遞歸查找在Linux和Unix中搜索文件

grep遞歸查找頭文件grep stands for Globally Search For Regular Expression and Print out. It is a command line tool used in UNIX and Linux systems to search a specified pattern in a file or group of files. grep代表全局搜索正則表達式并打印出來 。 它是UNIX和Li…

C++ 前置聲明

&#xff08;一&#xff09;class的前置聲明 class的前置聲明有兩種。 pre.hclass PreA {}; main.hclass PreA; class Main {};//或者 class Main {class PreA* A; }; (二) struct前置聲明 struct的前置聲明只能用第一種。 &#xff08;三&#xff09; 有typedef的前置聲明 Pr…

2.18 特殊權限set_uid 2.19 特殊權限set_gid 2.20 特殊權限stick_bit 2.21 軟鏈接文件 2.22 硬連接文件...

2019獨角獸企業重金招聘Python工程師標準>>> 特殊權限set_uid set_uid:該權限針對二進制可執行文件&#xff0c;使文件在執行階段具有文件所有者的權限&#xff1b; 通俗一點講就是&#xff0c;普通用戶想要訪問一個沒有其他用戶可執行權限的目錄時&#xff0c;暫時…

345. 反轉字符串中的元音字母

345. 反轉字符串中的元音字母 給你一個字符串 s &#xff0c;僅反轉字符串中的所有元音字母&#xff0c;并返回結果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’&#xff0c;且可能以大小寫兩種形式出現。 示例 1&#xff1a; 輸入&#xff1a;s “hello” 輸…

通過制作數字桌面游戲和Web應用程序學習JavaScript

Building 2D games can be a great way to learn JavaScript, especially when working through the basics of complex tabletop game logic.制作2D游戲可能是學習JavaScript的好方法&#xff0c;尤其是在研究復雜的桌面游戲邏輯基礎時。 In this series, I’m going to intr…

【HAVENT原創】Node Express API 通用配置

為什么80%的碼農都做不了架構師&#xff1f;>>> ( 基于 Express 4.x ) 啟動文件 /app.js&#xff1a; var express require(express); var bodyParser require(body-parser); var proxy require(http-proxy-middleware); var path require(path);var index re…