ความถี่ของคำที่มีการสั่งซื้อในความซับซ้อน O (n)
ในระหว่างการสัมภาษณ์ตำแหน่งนักพัฒนา Java ฉันถูกถามต่อไปนี้: เขียนฟังก์ชั่นที่ใช้สองพารามิเตอร์: String แสดงเอกสารข้อความและ จำนวนเต็มซึ่งระบุจำนวนรายการที่จะส่งคืน ใช้ฟังก์ชั่นเพื่อส่งคืนรายการ Strings เรียงลำดับตามความถี่ของคำซึ่งเป็นคำที่เกิดขึ้นบ่อยที่สุดก่อน โซลูชันของคุณควรทำงานในเวลาโดยที่คือจำนวนอักขระในเอกสารO(n)O(n)O(n)nnn ต่อไปนี้เป็นสิ่งที่ฉันตอบ (ใน pseudocode) ไม่ใช่แต่ค่อนข้างเวลาเนื่องจากการเรียงลำดับ ฉันไม่สามารถคิดออกว่าจะทำมันเวลา O(n)O(n)O(n)O(nlogn)O(nเข้าสู่ระบบn)O(n \log n)O(n)O(n)O(n) wordFrequencyMap = new HashMap<String, Integer>(); words = inputString.split(' '); for (String word : words) { count = wordFrequencyMap.get(word); count = (count == null) ? 1 : ++count; wordFrequencyMap.put(word, count); } return …