From b5c1126d7d0d2f77bd3a6ff6eb62f529b9c7f87b Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Sat, 16 Nov 2024 18:20:42 +0800 Subject: [PATCH] =?UTF-8?q?2024/11/16=20=E7=81=B5=E8=8C=B6=E9=A2=98?= =?UTF-8?q?=E5=8D=95=20=E4=BA=8C=E5=88=86=E6=9F=A5=E6=89=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ling_cha_mount/binary_search/Num1170.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/com/cool/ling_cha_mount/binary_search/Num1170.java diff --git a/src/main/java/com/cool/ling_cha_mount/binary_search/Num1170.java b/src/main/java/com/cool/ling_cha_mount/binary_search/Num1170.java new file mode 100644 index 0000000..c8499ee --- /dev/null +++ b/src/main/java/com/cool/ling_cha_mount/binary_search/Num1170.java @@ -0,0 +1,34 @@ +package com.cool.ling_cha_mount.binary_search; + +public class Num1170 { + public int[] numSmallerByFrequency(String[] queries, String[] words) { + int[] count = new int[12]; + for (String str : words) { + count[f(str)]++; + } + for (int i = 9; i > 0; i--) { + count[i] += count[i + 1]; + } + int[] res = new int[queries.length]; + for (int i = 0; i < queries.length; i++) { + int c = f(queries[i]); + res[i] = count[c + 1]; + } + return res; + } + + private int f(String s) { + char current = 'z'; + int count = 0; + for (int i = 0; i < s.length(); i++) { + char cur = s.charAt(i); + if (cur < current) { + current = cur; + count = 1; + } else if (cur == current) { + count++; + } + } + return count; + } +}