Loading...
More Java Posts
import java.util.Arrays;public class LongestIncreasingSubsequence {public int lengthOfLIS(int[] nums) {if (nums.length == 0) {return 0;}int[] dp = new int[nums.length];Arrays.fill(dp, 1); // Initialize all elements in dp array to 1, as each element itself is a valid subsequence of length 1.int maxLength = 1; // Initialize the maximum length to 1, considering a single element as the sequence.for (int i = 1; i < nums.length; i++) {for (int j = 0; j < i; j++) {if (nums[i] > nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1); // If nums[i] is greater than nums[j], update the longest subsequence length ending at i.}}maxLength = Math.max(maxLength, dp[i]); // Update the maximum length if needed.}return maxLength;}public static void main(String[] args) {LongestIncreasingSubsequence lis = new LongestIncreasingSubsequence();int[] nums = {10, 9, 2, 5, 3, 7, 101, 18};int result = lis.lengthOfLIS(nums);System.out.println("Length of the Longest Increasing Subsequence: " + result); // Output: 4}}
public class Daedalus extends Athenian{private Story story;public ArrayList<Skill> skills = new ArrayList<Skill>();public ArrayList<Athenian> children = new ArrayList<Athenian>();public Daedalus(Story story, ArrayList<Skill> inherentSkills){if(story != null)System.out.println("ERROR No one is created with a story.");skills.add(inherentSkills);}public Momento advanceStory(Scene s){System.err.println("ERROR Don't know how to proceed...");}}//██╗ ░█████╗░███╗░░░███╗ ██████╗░░█████╗░███████╗██████╗░░█████╗░██╗░░░░░██╗░░░██╗░██████╗//██║ ██╔══██╗████╗░████║ ██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██║░░░░░██║░░░██║██╔════╝//██║ ███████║██╔████╔██║ ██║░░██║███████║█████╗░░██║░░██║███████║██║░░░░░██║░░░██║╚█████╗░//██║ ██╔══██║██║╚██╔╝██║ ██║░░██║██╔══██║██╔══╝░░██║░░██║██╔══██║██║░░░░░██║░░░██║░╚═══██╗//██║ ██║░░██║██║░╚═╝░██║ ██████╔╝██║░░██║███████╗██████╔╝██║░░██║███████╗╚██████╔╝██████╔╝//╚═╝ ╚═╝░░╚═╝╚═╝░░░░░╚═╝ ╚═════╝░╚═╝░░╚═╝╚══════╝╚═════╝░╚═╝░░╚═╝╚══════╝░╚═════╝░╚═════╝░
import java.util.Arrays;public class QuickSortMain {private static int array[];public static void sort(int[] arr) {if (arr == null || arr.length == 0) {return;}array = arr;quickSort(0, array.length-1);}private static void quickSort(int left, int right) {int i = left;int j = right;// find pivot number, we will take it as midint pivot = array[left+(right-left)/2];while (i <= j) {/*** In each iteration, we will increment left until we find element greater than pivot* We will decrement right until we find element less than pivot*/while (array[i] < pivot) { i++; } while (array[j] > pivot) {j--;}if (i <= j) {exchange(i, j);//move index to next position on both sidesi++;j--;}}// call quickSort() method recursivelyif (left < j)quickSort(left, j);if (i < right)quickSort(i, right);}private static void exchange(int i, int j) {int temp = array[i];array[i] = array[j];array[j] = temp;}public static void main(String a[]){int[] input = {33,21,45,64,55,34,11,8,3,5,1};System.out.println("Before Sorting : ");System.out.println(Arrays.toString(input));sort(input);System.out.println("==================");System.out.println("After Sorting : ");System.out.println(Arrays.toString(array));}}
import java.util.ArrayList;import java.util.Iterator;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);char[] variables = setVariables(in);int[] minTerms = setMinTerms(in);String[] binaryMinTerms = decimalToBinary(variables, minTerms);ArrayList<Group> groups = computeSuccessiveGroups(minTerms, binaryMinTerms);displayInput(variables, minTerms);printPIs(groups, variables);}private static char[] setVariables(Scanner in) {System.out.print("Enter the number of variables: ");int numVariables = in.nextInt();char[] variables = new char[numVariables];System.out.print("Enter each variable separated by spaces: ");for(int i = 0; i < numVariables; i++) {variables[i] = in.next().charAt(0);}return variables;}private static int[] setMinTerms(Scanner in) {System.out.print("Enter the number of min terms: ");int numMinTerms = in.nextInt();int[] minTerms = new int[numMinTerms];System.out.print("Enter each min term separated by spaces: ");for(int i = 0; i < numMinTerms; i++) {minTerms[i] = in.nextInt();}return minTerms;}private static String[] decimalToBinary(char[] variables, int[] minTerms) {String[] binaryMinTerms = new String[minTerms.length];for(int i = 0; i < minTerms.length; i++) {binaryMinTerms[i] = Integer.toBinaryString(minTerms[i]);if(binaryMinTerms[i].length() < variables.length) {String zeros = "";int len = binaryMinTerms[i].length();while(len < variables.length) {zeros = zeros.concat("0");len++;}binaryMinTerms[i] = zeros + binaryMinTerms[i];}}return binaryMinTerms;}private static void displayInput(char[] variables, int[] minTerms) {System.out.print("Function: f(");for(int i = 0; i < variables.length; i++) {if(i == variables.length-1)System.out.print(variables[i]);elseSystem.out.print(variables[i] + ", ");}System.out.print(") = SIGMAm(");for(int i = 0; i < minTerms.length; i++) {if(i == minTerms.length-1)System.out.print(minTerms[i]);elseSystem.out.print(minTerms[i] + ", ");}System.out.println(")");}private static ArrayList<Group> computeSuccessiveGroups(int[] minTerms, String[] binaryMinTerms) {ArrayList<Group> groups = new ArrayList<Group>();for(int i = 0; i < minTerms.length; i++)groups.add(new Group(Integer.toString(minTerms[i]), binaryMinTerms[i]));int sizeBeforeRemoval = 0, currentSize;while(sizeBeforeRemoval != groups.size()) {currentSize = groups.size();for(int i = 0; i < currentSize; i++) {for(int j = i+1; j < currentSize; j++) {if(differences(groups.get(i).binary, groups.get(j).binary) == 1) {String combinedBin = combineBinary(groups.get(i).binary, groups.get(j).binary);groups.get(i).grouped = true;groups.get(j).grouped = true;if(isUniqueBin(groups, combinedBin)) {String newTuple = groups.get(i).decimal + "," + groups.get(j).decimal;groups.add(new Group(newTuple, combinedBin));}else break;}}}sizeBeforeRemoval = groups.size();Iterator<Group> iter = groups.iterator();while(iter.hasNext()) {Group next = iter.next();if(next.grouped)iter.remove();}}return groups;}private static int differences(String a, String b) {int diff = 0;for(int i = 0; i < a.length(); i++)if(a.charAt(i) != b.charAt(i))diff++;return diff;}private static String combineBinary(String a, String b) {String combined = "";for(int i = 0; i < a.length(); i++) {if(a.charAt(i) != b.charAt(i))combined = combined.concat("-");elsecombined = combined.concat(Character.toString(a.charAt(i)));}return combined;}private static boolean isUniqueBin(ArrayList<Group> groups, String s) {for(int i = 0; i < groups.size(); i++)if(groups.get(i).binary.equals(s))return false;return true;}private static void printPIs(ArrayList<Group> groups, char[] variables) {System.out.println("Prime Implicants: ");for(int i = 0; i < groups.size(); i++)System.out.println(groups.get(i).decimal + " | " + binaryToMinTerm(variables, groups.get(i).binary));}private static String binaryToMinTerm(char[] variables, String s) {String minTerm = "";for(int i = 0; i < s.length(); i++) {if(s.charAt(i) != '-') {if(s.charAt(i) == '0')minTerm = minTerm.concat(Character.toString(variables[i]) + "'");elseminTerm = minTerm.concat(Character.toString(variables[i]));}}return minTerm;}}
import static java.lang.System.*;import java.util.Arrays;public class MergeSort{private static int passCount;public static void mergeSort(int[] list){passCount=0;mergeSort(list, 0, list.length);}private static void mergeSort(int[] list, int front, int back) //O( Log N ){int mid = (front+back)/2;if(mid==front) return;mergeSort(list, front, mid);mergeSort(list, mid, back);merge(list, front, back);}private static void merge(int[] list, int front, int back) //O(N){int dif = back-front;int[] temp = new int[dif];int beg = front, mid = (front+back)/2;int saveMid = mid;int spot = 0;while(beg < saveMid && mid < back) {if(list[beg] < list[mid]) {temp[spot++] = list[beg++];} else {temp[spot++] = list[mid++];}}while(beg < saveMid)temp[spot++] = list[beg++];while(mid < back)temp[spot++] = list[mid++];for(int i = 0; i < back-front; i++) {list[front+i] = temp[i];}System.out.println("pass " + passCount++ + " " + Arrays.toString(list) + "\n");}public static void main(String args[]){mergeSort(new Comparable[]{ 9, 5, 3, 2 });System.out.println("\n");mergeSort(new Comparable[]{ 19, 52, 3, 2, 7, 21 });System.out.println("\n");mergeSort(new Comparable[]{ 68, 66, 11, 2, 42, 31});System.out.println("\n");}}
public static void enu2ecefCov(GMatrix ecefCov, GMatrix enuCov, LLA refLLA) {double lambda = refLLA.longitude;double phi = refLLA.latitude;GMatrix R = new GMatrix(6, 6);GMatrix Rt = new GMatrix(6, 6);GMatrix tmp1 = new GMatrix(6, 6);GMatrix tmp2 = new GMatrix(6, 6);R.setElement(0, 0, -Math.sin(lambda));R.setElement(0, 1, -Math.sin(phi)*Math.cos(lambda));R.setElement(0, 2, Math.cos(phi)*Math.cos(lambda));R.setElement(1, 0, Math.cos(lambda));R.setElement(1, 1, -Math.sin(phi)*Math.sin(lambda));R.setElement(1, 2, Math.cos(phi)*Math.sin(lambda));R.setElement(2, 0, 0);R.setElement(2, 1, Math.cos(phi));R.setElement(2, 2, Math.sin(phi));R.setElement(3, 3, -Math.sin(lambda));R.setElement(3, 4, -Math.sin(phi)*Math.cos(lambda));R.setElement(3, 5, Math.cos(phi)*Math.cos(lambda));R.setElement(4, 3, Math.cos(lambda));R.setElement(4, 4, -Math.sin(phi)*Math.sin(lambda));R.setElement(4, 5, Math.cos(phi)*Math.sin(lambda));R.setElement(5, 3, 0);R.setElement(5, 4, Math.cos(phi));R.setElement(5, 5, Math.sin(phi));Rt.transpose(R);tmp1.mul(enuCov, R);ecefCov.mul(Rt, tmp1);}