Swap Two Numbers Without Using a Third Variable
Trick:
Use arithmetic operators.
public class SwapNumbers {
public static void main(String[] args) {
int a = 10;
int b = 20;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
Output
a = 20
b = 10
2. Find Largest of Three Numbers Without Using if-else
Trick:
Use the ternary operator.
public class LargestNumber {
public static void main(String[] args) {
int a = 15;
int b = 30;
int c = 25;
int largest = (a > b) ? (a > c ? a : c)
: (b > c ? b : c);
System.out.println("Largest = " + largest);
}
}
3. Reverse a Number
Trick:
Extract the last digit using % 10.
public class ReverseNumber {
public static void main(String[] args) {
int num = 12345;
int reverse = 0;
while(num != 0)
{
int digit = num % 10;
reverse = reverse * 10 + digit;
num = num / 10;
}
System.out.println(reverse);
}
}
4. Count Digits Without Converting to String
Trick:
Repeatedly divide by 10.
public class CountDigits {
public static void main(String[] args) {
int num = 987654;
int count = 0;
while(num != 0)
{
count++;
num /= 10;
}
System.out.println("Digits = " + count);
}
}
5. Check Palindrome Number
Trick:
Reverse the number and compare.
public class Palindrome {
public static void main(String[] args) {
int num = 121;
int original = num;
int reverse = 0;
while(num != 0)
{
reverse = reverse * 10 + num % 10;
num /= 10;
}
if(original == reverse)
System.out.println("Palindrome");
else
System.out.println("Not Palindrome");
}
}
6. Find Missing Number in an Array
Trick:
Use the formula:n(n+1)/2
public class MissingNumber {
public static void main(String[] args) {
int arr[] = {1,2,3,5};
int n = 5;
int expected = n * (n + 1) / 2;
int sum = 0;
for(int i : arr)
sum += i;
System.out.println("Missing = " + (expected - sum));
}
}
7. Find Duplicate Elements
Trick:
Nested loops (easy version).
public class DuplicateElements {
public static void main(String[] args) {
int arr[] = {2,5,6,2,7,8,5};
for(int i=0;i<arr.length;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]==arr[j])
System.out.println(arr[i]);
}
}
}
}
8. Find Second Largest Number
Trick:
Maintain largest and secondLargest together.
public class SecondLargest {
public static void main(String[] args) {
int arr[] = {10,50,30,90,80};
int largest = Integer.MIN_VALUE;
int second = Integer.MIN_VALUE;
for(int num : arr)
{
if(num > largest)
{
second = largest;
largest = num;
}
else if(num > second && num != largest)
{
second = num;
}
}
System.out.println("Second Largest = " + second);
}
}
9. Check Whether Two Strings are Anagrams
Trick:
Sort both strings.
import java.util.Arrays;
public class Anagram {
public static void main(String[] args) {
String s1 = "listen";
String s2 = "silent";
char a[] = s1.toCharArray();
char b[] = s2.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
if(Arrays.equals(a,b))
System.out.println("Anagram");
else
System.out.println("Not Anagram");
}
}
10. Count Frequency of Every Character
Trick:
Use an array of size 256.
public class CharacterFrequency {
public static void main(String[] args) {
String str = "programming";
int freq[] = new int[256];
for(int i=0;i<str.length();i++)
{
freq[str.charAt(i)]++;
}
for(int i=0;i<256;i++)
{
if(freq[i] != 0)
{
System.out.println((char)i + " : " + freq[i]);
}
}
}
}