Skip to content

Commit 829111e

Browse files
committed
Fix for Overflow in finding Square root of an Integer
1 parent e4e61f2 commit 829111e

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/Arrays/MaxSubArraySum.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package Arrays;
2+
3+
public class MaxSubArraySum {
4+
public static void main(String[] args) {
5+
6+
}
7+
8+
static void MaxSubArraySumForLength(int [] A, int length){
9+
10+
}
11+
}

src/Basics/SquareRootOfNumber.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
public class SquareRootOfNumber {
77
public static void main(String[] args) {
88

9-
// int result = findSquareRootOfNumber(121);
10-
int result = findSquareRootOfNumberWithBinarySearch(0);
9+
// long result = findSquareRootOfNumber(930675566);
10+
int result = findSquareRootOfNumberWithBinarySearch(930675566);
1111
System.out.println(result);
1212
}
1313

14-
static int findSquareRootOfNumber(int number){
14+
static long findSquareRootOfNumber(long number){
1515

1616
// Base cases
1717
if (number == 0 || number == 1)
@@ -24,7 +24,7 @@ static int findSquareRootOfNumber(int number){
2424
while (result < number) {
2525
i++;
2626
result = i * i;
27-
System.out.println(i + " " + result);
27+
// System.out.println(i + " " + result);
2828
}
2929

3030
if (i*i == number){
@@ -42,20 +42,19 @@ static int findSquareRootOfNumberWithBinarySearch(int A){
4242

4343
while(startIndex <= lastIndex){
4444

45-
int middleIndex = startIndex + (lastIndex - startIndex)/2;
45+
int middleIndex = startIndex + ((lastIndex - startIndex)/2);
4646

4747
if(A == middleIndex*middleIndex){
4848
return middleIndex;
4949
}
50-
else if(middleIndex*middleIndex < A){
50+
else if(middleIndex <= A/middleIndex){
5151
answer = middleIndex;
5252
startIndex = middleIndex+1;
5353

5454
}else{
5555

5656
lastIndex = middleIndex -1;
5757
}
58-
5958
}
6059
return answer;
6160
}

0 commit comments

Comments
 (0)