• Nov 19, 2022 •CodeCatch
0 likes • 0 views
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 mid int 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 sides i++; j--; } } // call quickSort() method recursively if (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)); } }
• Feb 1, 2022 •LeifMessinger
0 likes • 1 view
//Leif Messinger //Solves wordle //Needs a list of wordle words, newline separated and 5 characters each import java.util.*; import java.io.File; import java.io.FileNotFoundException; class WordleSolver { public static void printPointer(int position){ for(int i = 0; i < position; ++i){ System.out.print(" "); } System.out.print("^"); } public static void main(String[] args) throws FileNotFoundException{ if(args.length < 1) return; File dictionary = new File(args[0]); Scanner sc = new Scanner(dictionary); ArrayList<String> possibleWords = new ArrayList<String>(); while(sc.hasNextLine()){ possibleWords.add(sc.nextLine()); } Scanner input = new Scanner(System.in); while(possibleWords.size() > 0){ //Choose a word out of the possible words final int randomIndex = (int)(Math.random() * possibleWords.size()); String chosenWord = possibleWords.get(randomIndex); possibleWords.remove(randomIndex); System.out.println("Is it correct?"); for(int i = 0; i < chosenWord.length(); ++i){ System.out.println(chosenWord); printPointer(i); System.out.println(" y/n?"); if(input.nextLine().toLowerCase().contains("y")){ //Filter by correct character for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned if(possibleWords.get(possibleWord).charAt(i) != chosenWord.charAt(i)){ possibleWords.remove(possibleWord); } } } } System.out.println("Is it misplaced?"); //Stores a count of every letter misplaced short[] misplacedCounts = new short[('z'-'a')+1]; //Praise be the garbage collector for(int i = 0; i < chosenWord.length(); ++i){ System.out.println(chosenWord); printPointer(i); System.out.println(" y/n?"); if(input.nextLine().toLowerCase().contains("y")){ //Filter to make sure there's at least as many letters as needed ++misplacedCounts[(chosenWord.charAt(i) - 'a') - 1]; for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned int count = 0; for(int j = 0; j < possibleWords.get(possibleWord).length(); ++j){ if(possibleWords.get(possibleWord).charAt(j) == chosenWord.charAt(i)) ++count; } //If there's not enough of the character that we need, then we remove that from the list of possible characters if(count < misplacedCounts[(chosenWord.charAt(i) - 'a') - 1]){ possibleWords.remove(possibleWord); } } //Also filter out words where that letter doesn't belong there for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned if(possibleWords.get(possibleWord).charAt(i) == chosenWord.charAt(i)){ possibleWords.remove(possibleWord); continue; //Breaks the current word and moves on in the loop } } } } } } }
• Oct 7, 2023 •AustinLeath
0 likes • 5 views
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 } }
//sample code to write 100 random ints to a file, 1 per line import java.io.PrintStream; import java.io.IOException; import java.io.File; import java.util.Random; public class WriteToFile { public static void main(String[] args) { try { PrintStream writer = new PrintStream(new File("randInts.txt")); Random r = new Random(); final int LIMIT = 100; for (int i = 0; i < LIMIT; i++) { writer.println(r.nextInt()); } writer.close(); } catch (IOException e) { System.out.println("An error occured while trying to write to the file"); } } }
public class Factorial { public static void main(String[] args) { final int NUM_FACTS = 100; for(int i = 0; i < NUM_FACTS; i++) System.out.println( i + "! is " + factorial(i)); } public static int factorial(int n) { int result = 1; for(int i = 2; i <= n; i++) result *= i; return result; } }
• Oct 15, 2022 •CodeCatch
0 likes • 8 views
public static String addBinary(){ // The two input Strings, containing the binary representation of the two values: String input0 = "1010"; String input1 = "10"; // Use as radix 2 because it's binary int number0 = Integer.parseInt(input0, 2); int number1 = Integer.parseInt(input1, 2); int sum = number0 + number1; return Integer.toBinaryString(sum); //returns the answer as a binary value; }