0
点赞
收藏
分享

微信扫一扫

统计不开心的朋友

佳简诚锄 2021-09-21 阅读 54
今日算法
题目描述:
示例 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:
示例 3:
思路分析:
import java.util.Set;

class Solution {
    public int unhappyFriends(int n, int[][] preferences, int[][] pairs) {
        boolean[][] arr = new boolean[n][n];
        for (int[] pair : pairs) {
            preProcess(arr, preferences, pair[0], pair[1]);
            preProcess(arr, preferences, pair[1], pair[0]);
        }

        int result = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if (arr[i][j] && arr[j][i]) {
                    result++;
                    break;
                }
            }
        }
        return result;
    }
    private void preProcess(boolean[][] arr, int[][] preferences, int x, int y) {
        for (int u : preferences[x]) {
            if (u != y) {
                arr[x][u] = true;
            } else {
                break;
            }
        }
    }
}
举报

相关推荐

0 条评论