diff --git a/2501-longest-square-streak-in-an-array/2501-longest-square-streak-in-an-array.java b/2501-longest-square-streak-in-an-array/2501-longest-square-streak-in-an-array.java new file mode 100644 index 0000000..29a8910 --- /dev/null +++ b/2501-longest-square-streak-in-an-array/2501-longest-square-streak-in-an-array.java @@ -0,0 +1,21 @@ +class Solution { + public int longestSquareStreak(int[] nums) { + TreeSet set = new TreeSet<>(); + for(int num : nums) { + set.add(num); + } + + int ans = 1; + while(!set.isEmpty()) { + int curr = set.first(); + int streak = 0; + while(!set.isEmpty() && set.contains(curr)) { + set.remove(curr); + curr = curr * curr; + streak++; + } + ans = Math.max(streak, ans); + } + return ans == 1 ? -1 : ans; + } +} \ No newline at end of file