Skip to content

Commit d874394

Browse files
committed
q679
1 parent e7cad25 commit d874394

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/backtrace/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
mod q22;
22
mod q46;
3-
mod q649;
3+
mod q679;

src/backtrace/q649.rs renamed to src/backtrace/q679.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ impl Solution {
66
let len = nums.len();
77

88
if len == 1 {
9-
return nums[0] == 24_f32
9+
return (nums[0] - 24_f32).abs() < 1.0e-6;
1010
}
1111

1212
for i in 0..len {
@@ -19,7 +19,6 @@ impl Solution {
1919
}
2020
}
2121

22-
2322
let mut new_nums_add = new_nums.clone();
2423
new_nums_add.push(nums[i] + nums[j]);
2524
if helpers(new_nums_add) {
@@ -33,6 +32,12 @@ impl Solution {
3332
return true
3433
}
3534

35+
let mut new_nums_res_sub = new_nums.clone();
36+
new_nums_res_sub.push(nums[j] - nums[i]);
37+
if helpers(new_nums_res_sub) {
38+
return true
39+
}
40+
3641
let mut new_nums_mul = new_nums.clone();
3742
new_nums_mul.push(nums[i] * nums[j]);
3843
if helpers(new_nums_mul) {
@@ -47,6 +52,13 @@ impl Solution {
4752
}
4853
}
4954

55+
if nums[i] != 0_f32 {
56+
let mut new_nums_res_div = new_nums.clone();
57+
new_nums_res_div.push(nums[j] / nums[i]);
58+
if helpers(new_nums_res_div) {
59+
return true
60+
}
61+
}
5062

5163
}
5264

@@ -57,7 +69,6 @@ impl Solution {
5769
false
5870
}
5971

60-
6172
helpers(
6273
nums.into_iter()
6374
.map(|v| v as f32)
@@ -78,6 +89,7 @@ mod tests {
7889
#[test]fn it_works() {
7990

8091
assert!(Solution::judge_point24(vec![4, 1, 8, 7]));
92+
assert!(Solution::judge_point24(vec![3, 3, 8 , 8]));
8193
assert!(Solution::judge_point24(vec![1, 9, 1, 2]));
8294
assert_eq!(Solution::judge_point24(vec![1,2,1,2]), false);
8395

0 commit comments

Comments
 (0)