g2701_2800.s2784_check_if_array_is_good.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g2701_2800.s2784_check_if_array_is_good;
// #Easy #Array #Hash_Table #Sorting #2023_09_21_Time_1_ms_(99.49%)_Space_41.2_MB_(98.36%)
/**
* 2784 - Check if Array is Good\.
*
* Easy
*
* You are given an integer array `nums`. We consider an array **good** if it is a permutation of an array `base[n]`.
*
* `base[n] = [1, 2, ..., n - 1, n, n]` (in other words, it is an array of length `n + 1` which contains `1` to `n - 1` exactly once, plus two occurrences of `n`). For example, `base[1] = [1, 1]` and `base[3] = [1, 2, 3, 3]`.
*
* Return `true` _if the given array is good, otherwise return_ `false`.
*
* **Note:** A permutation of integers represents an arrangement of these numbers.
*
* **Example 1:**
*
* **Input:** nums = [2, 1, 3]
*
* **Output:** false
*
* **Explanation:** Since the maximum element of the array is 3, the only candidate n for which this array could be a permutation of base[n], is n = 3. However, base[3] has four elements but array nums has three. Therefore, it can not be a permutation of base[3] = [1, 2, 3, 3]. So the answer is false.
*
* **Example 2:**
*
* **Input:** nums = [1, 3, 3, 2]
*
* **Output:** true
*
* **Explanation:** Since the maximum element of the array is 3, the only candidate n for which this array could be a permutation of base[n], is n = 3. It can be seen that nums is a permutation of base[3] = [1, 2, 3, 3] (by swapping the second and fourth elements in nums, we reach base[3]). Therefore, the answer is true.
*
* **Example 3:**
*
* **Input:** nums = [1, 1]
*
* **Output:** true
*
* **Explanation:** Since the maximum element of the array is 1, the only candidate n for which this array could be a permutation of base[n], is n = 1. It can be seen that nums is a permutation of base[1] = [1, 1]. Therefore, the answer is true.
*
* **Example 4:**
*
* **Input:** nums = [3, 4, 4, 1, 2, 1]
*
* **Output:** false
*
* **Explanation:** Since the maximum element of the array is 4, the only candidate n for which this array could be a permutation of base[n], is n = 4. However, base[4] has five elements but array nums has six. Therefore, it can not be a permutation of base[4] = [1, 2, 3, 4, 4]. So the answer is false.
*
* **Constraints:**
*
* * `1 <= nums.length <= 100`
* * `1 <= num[i] <= 200`
**/
public class Solution {
public boolean isGood(int[] nums) {
int max = Integer.MIN_VALUE;
int sum = 0;
for (int i : nums) {
if (i > max) {
max = i;
}
sum += i;
}
if (max != nums.length - 1) {
return false;
}
int newSum = max * (max + 1) / 2 + max;
if (sum != newSum) {
return false;
}
int count = 0;
for (int i : nums) {
if (i == max) {
count++;
}
}
return count == 2;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy