Java Basic Problems - Optimized Solutions
Fibonacci (Optimized O(n), O(1))
int fib(int n){
if(n<=1) return n;
int prev=0, curr=1;
for(int i=2;i<=n;i++){
int next=prev+curr;
prev=curr;
curr=next;
}
return curr;
}
Prime Check (Optimized)
boolean isPrime(int n){
if(n<=1) return false;
for(int i=2;i*i<=n;i++){
if(n%i==0) return false;
}
return true;
}
Palindrome Number
boolean isPalindrome(int n){
int rev=0, temp=n;
while(n>0){
rev=rev*10 + n%10;
n/=10;
}
return temp==rev;
}
Reverse Number
int reverse(int n){
int rev=0;
while(n>0){
rev=rev*10 + n%10;
n/=10;
}
return rev;
}
GCD (Euclidean Algorithm)
int gcd(int a,int b){
while(b!=0){
int temp=b;
b=a%b;
a=temp;
}
return a;
}
Find Max in Array
int max(int[] arr){
int max=arr[0];
for(int x:arr){
if(x>max) max=x;
}
return max;
}
Reverse String
String reverse(String s){
char[] arr=[Link]();
int l=0,r=[Link]-1;
while(l<r){
char temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
l++; r--;
}
return new String(arr);
}