From f66e51360ccec11e3ee907e667c44698fa705094 Mon Sep 17 00:00:00 2001 From: kkunkka Date: Tue, 10 Jun 2025 23:00:35 +0800 Subject: [PATCH] kk --- .../com/dota/binarySearch/_1901/Solution.java | 33 +++++++++++++++++++ .../com/dota/binarySearch/_540/Solution.java | 16 +++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/main/java/com/dota/binarySearch/_1901/Solution.java create mode 100644 src/main/java/com/dota/binarySearch/_540/Solution.java diff --git a/src/main/java/com/dota/binarySearch/_1901/Solution.java b/src/main/java/com/dota/binarySearch/_1901/Solution.java new file mode 100644 index 0000000..9562bae --- /dev/null +++ b/src/main/java/com/dota/binarySearch/_1901/Solution.java @@ -0,0 +1,33 @@ +package com.dota.binarySearch._1901; + +class Solution { + public static void main(String[] args) { + new Solution().findPeakGrid(new int[][]{{70, 50, 40, 30, 20}, {100, 1, 2, 3, 4}}); + } + + public int[] findPeakGrid(int[][] mat) { + int x = 0, y = 0; + int n = mat.length, m = mat[0].length; + int max = mat[0][0]; + for (int i = 0; i < n; i++) { + int idx = max(mat[i]); + if (mat[i][idx] > max) { + max = mat[i][idx]; + x = i + ; + y = idx; + } + } + return new int[]{x, y}; + } + + int max(int[] mat) { + int idx = 0; + for (int i = 0; i < mat.length; i++) { + if (mat[i] > mat[idx]) { + idx = i; + } + } + return idx; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/binarySearch/_540/Solution.java b/src/main/java/com/dota/binarySearch/_540/Solution.java new file mode 100644 index 0000000..abcc6eb --- /dev/null +++ b/src/main/java/com/dota/binarySearch/_540/Solution.java @@ -0,0 +1,16 @@ +package com.dota.binarySearch._540; + +class Solution { + public int singleNonDuplicate(int[] nums) { + int l = -1, r = nums.length / 2; + while (l + 1 < r) { + int mid = l + (r - l) / 2; + if (nums[2 * mid] == nums[2 * mid + 1]) { + l = mid + 1; + } else { + r = mid - 1; + } + } + return nums[2 * r]; + } +} \ No newline at end of file