From 11b204ba9b3043b4bec647fd1bb59f5df7f90a5b Mon Sep 17 00:00:00 2001 From: AkifhanIlgaz Date: Tue, 17 Jan 2023 11:45:23 +0300 Subject: [PATCH] Create: 0926-flip-string-to-monotone-increasing.rs / .ts / .js /.go --- go/0926-flip-string-to-monotone-increasing.go | 20 +++++++++++++++++++ ...0926-flip-string-to-monotone-increasing.js | 17 ++++++++++++++++ ...0926-flip-string-to-monotone-increasing.rs | 14 +++++++++++++ ...0926-flip-string-to-monotone-increasing.ts | 14 +++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 go/0926-flip-string-to-monotone-increasing.go create mode 100644 javascript/0926-flip-string-to-monotone-increasing.js create mode 100644 rust/0926-flip-string-to-monotone-increasing.rs create mode 100644 typescript/0926-flip-string-to-monotone-increasing.ts diff --git a/go/0926-flip-string-to-monotone-increasing.go b/go/0926-flip-string-to-monotone-increasing.go new file mode 100644 index 000000000..637957ab1 --- /dev/null +++ b/go/0926-flip-string-to-monotone-increasing.go @@ -0,0 +1,20 @@ +func minFlipsMonoIncr(s string) int { + res, countOne := 0, 0 + + for _, ch := range s { + if ch == '1' { + countOne++ + } else { + res = min(res+1, countOne) + } + } + + return res +} + +func min(a, b int) int { + if a < b { + return a + } + return b +} \ No newline at end of file diff --git a/javascript/0926-flip-string-to-monotone-increasing.js b/javascript/0926-flip-string-to-monotone-increasing.js new file mode 100644 index 000000000..e4de7bc8b --- /dev/null +++ b/javascript/0926-flip-string-to-monotone-increasing.js @@ -0,0 +1,17 @@ +/** + * @param {string} s + * @return {number} + */ +var minFlipsMonoIncr = function (s) { + let [res, countOne] = [0, 0]; + + for (ch of s) { + if (ch == '1') { + countOne++; + } else { + res = Math.min(res + 1, countOne); + } + } + + return res; +}; diff --git a/rust/0926-flip-string-to-monotone-increasing.rs b/rust/0926-flip-string-to-monotone-increasing.rs new file mode 100644 index 000000000..ca81f5f02 --- /dev/null +++ b/rust/0926-flip-string-to-monotone-increasing.rs @@ -0,0 +1,14 @@ +impl Solution { + pub fn min_flips_mono_incr(s: String) -> i32 { + let (mut res, mut count_one) = (0, 0); + + for ch in s.chars() { + if ch == '1' { + count_one += 1; + } else { + res = i32::min(res + 1, count_one); + } + } + res + } +} \ No newline at end of file diff --git a/typescript/0926-flip-string-to-monotone-increasing.ts b/typescript/0926-flip-string-to-monotone-increasing.ts new file mode 100644 index 000000000..1ac0b796a --- /dev/null +++ b/typescript/0926-flip-string-to-monotone-increasing.ts @@ -0,0 +1,14 @@ +function minFlipsMonoIncr(s: string): number { + let res: number = 0; + let countOne: number = 0; + + for (let ch of s) { + if (ch == '1') { + countOne++; + } else { + res = Math.min(res + 1, countOne); + } + } + + return res; +}