Skip to content

Instantly share code, notes, and snippets.

@chase-lambert
Created May 14, 2024 16:04
Show Gist options
  • Save chase-lambert/8177aeed590445628fa29b617fd84554 to your computer and use it in GitHub Desktop.
Save chase-lambert/8177aeed590445628fa29b617fd84554 to your computer and use it in GitHub Desktop.
rendezvous with cassidoo challenge: 24.05.13
(ns max-product
(:require [clojure.test :refer [deftest is]]))
(defn max-product [nums]
(->> (sort nums)
(take-last 3)
(reduce * 1)))
(deftest max-product-test
(is (= 72 (max-product [2 4 1 3 -5 6]))))
@chase-lambert
Copy link
Author

Rust version:

pub fn max_product(nums: &[i32]) -> i32 {
    let mut nums = nums.to_owned();
    nums.sort();
    nums.iter().rev().take(3).fold(1, |acc, n| acc * n)
}

#[test]
fn max_product_test() {
    let nums = [2, 4, 1, 3, -5, 6];

    assert_eq!(max_product(&nums), 72);
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment