Leetcode P822 Java使用Set去解决此问题
ideas
首先把fronts 和 backs 相同下标并且值相同
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < fronts.length; i++) {
if (fronts[i] == backs[i]){
set.add(fronts[i]);
}
}
我们程序中可能翻转也可能不翻转,所以我们先找到正面的最小值
for (int front : fronts) {
if (!set.contains(front)) {
res = Math.min(res,front);
}
}
假设翻转,是否能找到更小的值
for (int front : backs) {
if (!set.contains(front)) {
res = Math.min(res,front);
}
}
code
package leccod;
import java.util.HashSet;
public class P822 {
public static void main(String[] args) {
}
public int flipgame(int[] fronts, int[] backs) {
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < fronts.length; i++) {
if (fronts[i] == backs[i]){
set.add(fronts[i]);
}
}
int res = Integer.MAX_VALUE;
for (int front : fronts) {
if (!set.contains(front)) {
res = Math.min(res,front);
}
}
for (int front : backs) {
if (!set.contains(front)) {
res = Math.min(res,front);
}
}
return res;
}
}