Start learning free

LESSON 196 OF 414 · NESTED LOOPS

Top K Brands V4 - Top K in Rust

Practice

Show the top k brands by rating. This is v3's search, repeated k times: find the best brand, mark it as taken, then search again among the brands that are not taken yet, until you have k brands in rank order.

You start with: an empty editor (no starter code). Declare this data yourself:

let brands = vec!["TechPro", "MegaCorp", "Quantum", "NeoByte", "Zenith"];
let ratings = vec![4, 5, 3, 5, 4];
let k = 3;

Build:

1. MegaCorp (5)
2. NeoByte (5)
3. TechPro (4)

Rules:

  • Repeat v3's search k times. Each round looks only at brands that are not taken yet and picks the one with the highest rating, then marks it as taken (one true/false flag per brand).
  • Ties go to the brand listed first: keep the first brand you find and replace it only on a strictly higher rating.
  • k is never larger than the number of brands.
  • Each line is "rank. Brand (rating)", starting at rank 1.
  • Print the lines, one per line, with println!(...).

Start with the two declarations let mut used = vec![false; ratings.len()]; and let mut lines = Vec::new();. A flag tells whether that position is already taken.

Each round is v3's search: nothing found yet, scan every position, skip taken ones, keep the first candidate and replace it only on a strictly higher rating. Then mark the winner as taken and add its line.

let brands = vec!["TechPro", "MegaCorp", "Quantum", "NeoByte", "Zenith"];
let ratings = vec![4, 5, 3, 5, 4];
let k = 3;
let mut used = vec![false; ratings.len()];
let mut lines = Vec::new();
for rank in 1..=k {
    let mut best_index = 0;
    let mut found = false;
    for i in 0..ratings.len() {
        if !used[i] {
            if !found || ratings[i] > ratings[best_index] {
                best_index = i;
                found = true;
            }
        }
    }
    used[best_index] = true;
    lines.push(format!("{}. {} ({})", rank, brands[best_index], ratings[best_index]));
}
println!("{}", lines.join("\n"));

STEP 1 OF 16
    Ctrl + Enter to check

    Top K Brands V4 in Rust

    Keep going with RustAbout 340 step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free