Carane nemokake nomer telu paling gedhe ing array
Source: Dev.to Kita duwe masalah kanggo ngatasi: Sampeyan diwenehi Uploaded unsorted integer. Kepiye carane nemokake nomer paling gedhe nomer telu ing larik? Cathetan: Array kasebut ngemot nilai duplikat lan nilai negatif, lan uga kode iki kudu bisa digunakake yen dawa array mundhak kaping N. Solusi kasebut diwenehi ing Jawa:Conto 1: Unsorted array karo nilai negatif
Input: [87, 99, -14, 05, 46, 54] Kode:public class ThirdLargestNumInArray {
public static void main(String[] args) {
/*
* unsorted Array with duplicate and negative values
*/
Integer arr[] = { 87, 99, -14, 05, 46, 54 };
/* Variable initialization */
int largest = 0, secondLargest = 0, thirdLargest = 0;
/* Condition to find */
for (int i = 0; i < arr.length; i++) {
if (arr[i] > largest) {
/*
* if condition is true assign large value to second large value
*/
secondLargest = largest;
/* assign new large value */
largest = arr[i];
} else if (arr[i] > secondLargest) {
/*
* if condition is true assign second large value to third large value
*/
thirdLargest = secondLargest;
/* assign new second large value */
secondLargest = arr[i];
} else if (arr[i] > thirdLargest) {
/*
* if condition is true the third largest value will be assigned
*/
thirdLargest = arr[i];
}
}
/* Print the values */
System.out.println("Largest = " + largest);
System.out.println("Second Largest = " + secondLargest);
System.out.println("Third Largest = " + thirdLargest);
}
}
Kesimpulan:
-
Kaya kasebut ing ndhuwur, array diinisialisasi kanthi nilai positif lan negatif.
-
Kita miwiti variabel kanggo nyimpen nilai paling gedhe, nomer loro, lan nomer telu. Cathetan: Variabel diinisialisasi dadi 0 kanggo siji kasus khusus: yen unsur maksimum katelu ora ana ing larik, bakal ngasilake 0.
-
Kita mbaleni loop N (dawa array) kaping pirang-pirang kanggo nemokake telung nilai paling gedhe.
-
Yen kondisi kanggo nemtokake nilai paling gedhe kanggo nilai gedhe kaloro lan initialize Nilai gedhe anyar ing Uploaded.
Kondisi 1st elseif kanggo nemtokake nilai amba kaloro kanggo Nilai amba katelu lan initialize Nilai amba kapindho anyar ing Uploaded.
Kawontenan elseif 2nd kanggo nemtokake nilai gedhe katelu ing Uploaded.
-
Pungkasan, kita nyithak variabel.
Conto 2: Unsorted array kanthi nilai negatif lan duplikat
Input: [77, 101, 95, 14, 05, 46, -47, 94, 00, 95, 52, 86, 36, -54, 94, 89] Kode:import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
public class ThirdLargestNumInSet {
public static void main(String[] args) {
/*
* unsorted Array with duplicate and negative values
*/
Integer arr[] = { 77, 101, 14, 05, 46, -47, 94, 00, 95, 52, 86, 36, -54, 94, 89 };
/* Variable initialization */
int largest = 0, secondLargest = 0, thirdLargest = 0;
/*
* using LinkedHashSet - Map to remove duplication in Array
*/
Set<Integer> newSet = new LinkedHashSet<>();
for (int i = 0; i < arr.length; i++) {
newSet.add(arr[i]);
}
/* Condition to find */
for (Integer i : newSet) {
if (i > largest) {
/*
* if condition is true assign large value to second large value
*/
secondLargest = largest;
/* assign new large value */
largest = i;
} else if (i > secondLargest) {
/*
* if condition is true assign second large value to third large value
*/
thirdLargest = secondLargest;
/* assign new second large value */
secondLargest = i;
} else if (i > thirdLargest) {
/*
* if condition is true the third largest value will be assigned
*/
thirdLargest = i;
}
}
/* Print the values */
System.out.print("Largest = " + largest);
System.out.print("\nSecond Largest = " + secondLargest);
System.out.print("\nThird Largest = " + thirdLargest);
}
}
Kesimpulan:
Solusi liyane:
Kita bisa nggunakake algoritma ngurutake gelembung (ngurutake saka paling murah nganti paling dhuwur) kanggo ngurutake array lan nemokake nilai paling gedhe saka array. Input: [87, 99, 14, 05, 46, 54] Kode:import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
public class Main {
public static void bubblesort(Integer[] arr) {
int n = arr.length;
int temp;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
Integer[] arr = { 87, 99, 14, 05, 46, 54 };
bubblesort(arr);
System.out.print("array after sorting : ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
int n = arr.length;
int max = arr[n - 3];
System.out.println("\n3rd largest value: " + max);
}
}
Kesimpulan:
Mbalikake senar ing Jawa
Sumber: Dev.toProgram Java kanggo mbalikke string nggunakake StringBuilder
Panjelasan: String minangka obyek ing Jawa sing didhukung sacara internal dening sawetara karakter. String ora bisa diganti amarga array ora bisa diganti (ditutup kanggo modifikasi). Saben sampeyan nggawe owahan ing baris, baris anyar digawe. Ing kasus kita nggunakake StringBuilder sing bisa diowahi. Cathetan: Kita uga bisa nggunakake kelas StringBuffer . Kode:public class ReverseStringBuilder {
public static void main(String[] args) {
/* String is immutable */
String name = "Palindrome";
/* Create StringBuilder(mutable) object */
StringBuilder s1 = new StringBuilder();
/* Using append() and reverse() in StringBuilder */
s1.append(name);
s1 = s1.reverse();
/* Print the reverse */
System.out.println(s1);
}
}
Kesimpulan:
-
Nggawe obyek saka kelas String lan miwiti.
-
Nggawe obyek saka kelas string builder .
-
Gunakake built-in string builder append () lan mbalikke () fungsi .
-
Nyetak obyek pembangun string .
Program Java kanggo mbalikke string tanpa nggunakake fungsi built-in String mbalikke ()
Cara 1
Panjelasan: Fungsi toCharArray () digunakake kanggo ngowahi string iki dadi array karakter. Sawise iki, kita bakal nggunakake daur ulang kanggo ngliwati saben karakter kanthi urutan mbalikke lan entuk output kanggo saben karakter. Kode:public class Reverse {
public static void main(String[] args) {
/* String is immutable */
String name = "Palindrome";
/* Using toCharArray() function */
char[] ch = name.toCharArray();
/* Temp string */
String rev = "";
/* Iterating for loop in reverse to store */
for (int i = ch.length - 1; i >= 0; i--) {
/* Concatenating Strings */
rev += ch[i];
}
/* Print the reverse */
System.out.println(rev);
}
}
Kesimpulan:
-
Nggawe obyek saka kelas String lan miwiti.
-
Nggawe array karakter lan nelpon fungsi toCharArray () karo obyek String .
-
Nggawe obyek String kanggo variabel sementara.
-
Baleni kanggo daur ulang ing mbalikke kanggo njaluk saben karakter ing urutan mbalikke.
-
Gabungke saben karakter dadi variabel Temp .
-
Tipe Temp .
Metode 2
Panjelasan: Nggunakake for loop , kita nyithak senar kanthi urutan mbalikke. Ing sisih liya, metode charAt(indeks) ngasilake karakter ing indeks apa wae. Karakter kasebut bakal digabung sawise saben pengulangan kanggo ngganti variabel senar. Kode:public class ReverseCharAt {
public static void main(String[] args) {
/* String is immutable */
String name = "Palindrome";
/* Temp string */
String rev = "";
/* Iterating for loop in reverse to store */
for (int i = name.length() - 1; i >= 0; i--) {
/* Concatenating Strings */
rev = rev + name.charAt(i);
}
/* Print the reverse */
System.out.println(rev);
}
}
Kesimpulan:
-
Nggawe obyek saka kelas String lan miwiti.
-
Nggawe obyek String kanggo variabel sementara.
-
Baleni kanggo loop ing urutan mbalikke kanggo njaluk saben karakter ing urutan mbalikke.
-
Gabungke saben karakter menyang variabel Temp kanthi nelpon fungsi charAt () .
-
We print Temp .
GO TO FULL VERSION