From 3808ee56491c8046be38434b3d84a08a5aa6a760 Mon Sep 17 00:00:00 2001 From: JishnuS420 Date: Thu, 25 Apr 2024 05:00:27 -0700 Subject: [PATCH] hacks --- _notebooks/2024-04-18-arraysworkshop3.ipynb | 86 +++++++++++++++------ 1 file changed, 61 insertions(+), 25 deletions(-) diff --git a/_notebooks/2024-04-18-arraysworkshop3.ipynb b/_notebooks/2024-04-18-arraysworkshop3.ipynb index fd574bc..31c4cb6 100644 --- a/_notebooks/2024-04-18-arraysworkshop3.ipynb +++ b/_notebooks/2024-04-18-arraysworkshop3.ipynb @@ -33,11 +33,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "vscode": { - "languageId": "java" - } - }, + "metadata": {}, "outputs": [ { "ename": "EvalException", @@ -67,11 +63,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "vscode": { - "languageId": "java" - } - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -128,11 +120,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "vscode": { - "languageId": "java" - } - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -241,11 +229,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "vscode": { - "languageId": "java" - } - }, + "metadata": {}, "outputs": [], "source": [ "public ArrayList getDelimitersList(String[] tokens)\n", @@ -312,9 +296,7 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "
" - ] + "source": [] }, { "cell_type": "markdown", @@ -322,6 +304,60 @@ "source": [ "PART B: Develop an algorithm to find the median value of an integer array WITHOUT sorting the array." ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median: 3.0\n" + ] + } + ], + "source": [ + "public class MedianFinder {\n", + "\n", + " public static double findMedian(int[] arr) {\n", + " int n = arr.length;\n", + " int minVal = Arrays.stream(arr).min().getAsInt();\n", + " int maxVal = Arrays.stream(arr).max().getAsInt();\n", + "\n", + " while (minVal < maxVal) {\n", + " int mid = minVal + (maxVal - minVal) / 2;\n", + " int countLessEqual = 0, countEqual = 0;\n", + "\n", + " for (int num : arr) {\n", + " if (num < mid) {\n", + " countLessEqual++;\n", + " } else if (num == mid) {\n", + " countEqual++;\n", + " }\n", + " }\n", + "\n", + " if (countLessEqual < n / 2 && countLessEqual + countEqual >= n / 2) {\n", + " return mid;\n", + " } else if (countLessEqual >= n / 2) {\n", + " maxVal = mid;\n", + " } else {\n", + " minVal = mid + 1;\n", + " }\n", + " }\n", + "\n", + " return minVal;\n", + " }\n", + "\n", + " public static void main(String[] args) {\n", + " int[] arr = {7, 2, 5, 3, 6};\n", + " System.out.println(\"Median: \" + findMedian(arr));\n", + " }\n", + "}\n", + "\n", + "MedianFinder.main(null)" + ] } ], "metadata": { @@ -334,9 +370,9 @@ "codemirror_mode": "java", "file_extension": ".jshell", "mimetype": "text/x-java-source", - "name": "Java", + "name": "java", "pygments_lexer": "java", - "version": "17.0.10+7-Ubuntu-120.04.1" + "version": "17.0.9+9-Ubuntu-120.04" } }, "nbformat": 4,