From 13daa9097f9b67b76a87bdca5c0665506828ab56 Mon Sep 17 00:00:00 2001 From: rchavesf <54189145+rchavesf@users.noreply.github.com> Date: Mon, 22 Mar 2021 15:57:58 -0600 Subject: [PATCH 1/2] fix in fenwick tree select method --- ch2/ourown/fenwicktree_ds.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch2/ourown/fenwicktree_ds.cpp b/ch2/ourown/fenwicktree_ds.cpp index becf380..56777a3 100644 --- a/ch2/ourown/fenwicktree_ds.cpp +++ b/ch2/ourown/fenwicktree_ds.cpp @@ -52,7 +52,7 @@ class FenwickTree { // index 0 is not used while (p*2 < (int)ft.size()) p *= 2; int i = 0; while (p) { - if (k > ft[i+p]) { + if (i+p < (int) ft.size() && k > ft[i+p]) { k -= ft[i+p]; i += p; } From fb08f5948bc061def7cd04529d6980fa1627262f Mon Sep 17 00:00:00 2001 From: rchavesf <54189145+rchavesf@users.noreply.github.com> Date: Sat, 31 Jul 2021 17:24:20 -0600 Subject: [PATCH 2/2] Update fenwicktree_ds.py --- ch2/ourown/fenwicktree_ds.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch2/ourown/fenwicktree_ds.py b/ch2/ourown/fenwicktree_ds.py index 2c58123..0a5fa26 100644 --- a/ch2/ourown/fenwicktree_ds.py +++ b/ch2/ourown/fenwicktree_ds.py @@ -33,7 +33,7 @@ def select(self, k): i = 0 while p > 0: - if k > self.ft[i + p]: + if i + p < len(self.ft) and k > self.ft[i + p]: k -= self.ft[i + p] i += p p //= 2