java recursion
java recursion
Time O(2^n)
Space O(2^n)
===========================================================
//Sum of elements of array using recursion
}
public static int findSum(int[] a, int n)
{
if(n<=0)
return 0;
return a[n-1] + findSum(a,n-1);
}
//Reverse an array
public static void reverse(int[] arr, int i){
if(i>=arr.length/2)
return;
int temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
reverse(arr,i+1);
}
O(n/2)
O(n/2)
=====================================================================
=================================================================================
}
public static void sayDigit(int n)
{
if(n>9)
sayDigit(n/10);
String st="";
switch(n%10)
{
case 0 : st="zero";break;
case 1 : st="one";break;
case 2 : st="two";break;
case 3 : st="three";break;
case 4 : st="four";break;
case 5 : st="five";break;
case 6 : st="six";break;
case 7 : st="seven";break;
case 8 : st="eight";break;
case 9 : st="nine";
}
System.out.print(st+" ");
}
===============================================================
}
public static boolean sortCheck(int[] a, int n){
if(n<2)
return true;
if(a[n-1]<a[n-2])
return false;
return sortCheck(a,n-1);
}
===============================================================
}
public static int lsearch(int[] a, int val, int i)
{
if(i==a.length)
return -1;
if(val==a[i])
return i;
return lsearch(a,val,i+1);
}
===================================================================
// Binary search using recursion
}
public static int binarySearch(int a[], int l, int r, int x)
{
if(r>=l)
{
int mid = l + (r - l) / 2;
if (a[mid] == x)
return mid;
if (a[mid] > x)
return binarySearch(a, l, mid - 1, x);
return binarySearch(a, mid + 1, r, x);
}
return -1;
}
===============================================================
// Get Stair Path - 0 to Nth or Nth to 0; - Pepcoding
import java.util.*;
public class MyClass {
public static void main(String args[])
{
int n = 6;
StringBuilder ds = new StringBuilder();
List<String> ans = new ArrayList<>();
help(n, ds, ans);
System.out.println(ans);
}
public static void help(int remSteps, StringBuilder ds, List<String> ans)
{
if(remSteps == 0)
{
ans.add(ds.toString());
return;
}
if(remSteps < 0)
return;
ds.append(1);
help(remSteps-1, ds, ans);
ds.deleteCharAt(ds.length()-1);
ds.append(2);
help(remSteps-2, ds, ans);
ds.deleteCharAt(ds.length()-1);
ds.append(3);
help(remSteps-3, ds, ans);
ds.deleteCharAt(ds.length()-1);
}
}
===================================================================================
====================
===================================================================================
==========================
class Solution {
public int climbStairs(int n) {
if(n==1 || n==2)
return n;
===================================================================================
=====================
class Solution
{
public List<String> letterCombinations(String digits)
{
List<String> result = new ArrayList<>();
if (digits.isEmpty()) return result;
return result;
}
OR
class Solution
{
//Function to find list of all words possible by pressing given numbers.
static ArrayList <String> possibleWords(int a[], int N)
{
ArrayList<String> result = new ArrayList<>();
return result;
}
public static void backtrack(int[] a, int index, StringBuilder cc,
Map<Integer,String> map, ArrayList<String> result)
{
if(index == a.length)
{
result.add(cc.toString());
return;
}