Skip to content

Instantly share code, notes, and snippets.

@mentix02
Created May 28, 2023 03:21
Show Gist options
  • Save mentix02/9f7565cf0fff0227ed1577ae026a9508 to your computer and use it in GitHub Desktop.
Save mentix02/9f7565cf0fff0227ed1577ae026a9508 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "5b210a8c",
"metadata": {},
"source": [
"# Problem\n",
"\n",
"**Statement** - Given an array of integers, return an array for which the i<sup>th</sup> element is the product of all the elements (in the given array) EXCEPT the i<sup>th</sup> element.\n",
"\n",
"Examples - \n",
"\n",
"```php\n",
"[1, 2, 3] -> [6, 3, 2]\n",
"[1, 2, 3, 4] -> [24, 12, 8, 6]\n",
"[5, 3, 0, 1] -> [0, 0, 15, 0]\n",
"[-3, 1, 4, -5] -> [-20, 60, 15, -12]\n",
"[1, 2, 0, 3, 0, 5] -> [0, 0, 0, 0, 0, 0]\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "c5160b3b",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"import time\n",
"import random\n",
"from pprint import pprint\n",
"from typing import Callable\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"TESTS: list[tuple[list[int], list[int]]] = [\n",
" (\n",
" [1, 2, 3], [6, 3, 2]\n",
" ),\n",
" (\n",
" [1, 2, 3, 4], [24, 12, 8, 6]\n",
" ),\n",
" (\n",
" [5, 3, 0, 1], [0, 0, 15, 0]\n",
" ),\n",
" (\n",
" [-3, 1, 4, -5], [-20, 60, 15, -12]\n",
" ),\n",
" (\n",
" [1, 2, 0, 3, 0, 5], [0, 0, 0, 0, 0, 0]\n",
" ),\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dce2996a",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"def naive_prod_eself(arr: list[int]) -> list[int]:\n",
" \"\"\"\n",
" O(n**2) algorithm; calculates every possible seq\n",
" \"\"\"\n",
" n = len(arr)\n",
" res = [1] * n\n",
"\n",
" for i in range(n):\n",
" for j in range(n):\n",
" if i == j:\n",
" continue\n",
" res[i] *= arr[j]\n",
"\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7fd9a6cc",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"for inp, expected in TESTS:\n",
" assert naive_prod_eself(inp) == expected"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "75df33f4",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"# random inputs\n",
"RANDOM_TESTS_INPUTS: list[list[int]] = [\n",
" [random.randint(-10_0000, 10_0000) for _ in range(l)]\n",
" for l in range(200, 351)\n",
"]\n",
"\n",
"# generate answers\n",
"RANDOM_TESTS_ANSWERS: list[list[int]] = [\n",
" naive_prod_eself(random_arr) for random_arr in RANDOM_TESTS_INPUTS\n",
"]\n",
"\n",
"# test inputs\n",
"RANDOM_TESTS = list(zip(RANDOM_TESTS_INPUTS, RANDOM_TESTS_ANSWERS))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1d2c00ed",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"def test_prod_eself_func(\n",
" random_tests: list[tuple[list[int], list[int]]],\n",
" prod_func: Callable[[list[int]], list[int]]\n",
"):\n",
" for i in range(len(random_tests)):\n",
" random_test_inp, test_answer = random_tests[i]\n",
" assert prod_func(random_test_inp) == test_answer"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3add6b59",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"def opt_prod_eself(arr: list[int]) -> list[int]:\n",
" \"\"\"\n",
" An optimized prod_eself O(n) algorithm. Exploits the\n",
" fact that we can calculate the total product of the\n",
" array just once and then the i_th element of the resultant\n",
" array can just be the product divided by the i_th element\n",
" of the original array.\n",
" \"\"\"\n",
"\n",
" res = [0] * len(arr)\n",
" prod, zero_count = 1, 0\n",
"\n",
" for num in arr:\n",
" if num == 0:\n",
" zero_count += 1\n",
" else:\n",
" prod *= num\n",
"\n",
" if zero_count > 1:\n",
" # if there are more than 1 zero in the array,\n",
" # then it's mathematically answerable that\n",
" # each element will just be a 0.\n",
" return res\n",
"\n",
" if zero_count == 1:\n",
" # if there's only 1 zero, then each element\n",
" # is just 0 EXCEPT the i_th position el, which\n",
" # is the original product of all non-zero elements\n",
" res[arr.index(0)] = prod\n",
" else:\n",
" # otherwise, just loop over each element\n",
" # divide the product with each and store\n",
" for i in range(len(res)):\n",
" res[i] = prod // arr[i]\n",
"\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "28448d52",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"for inp, expected in TESTS:\n",
" assert opt_prod_eself(inp) == expected"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "e4fe535c",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"test_prod_eself_func(TESTS, opt_prod_eself)\n",
"test_prod_eself_func(RANDOM_TESTS, opt_prod_eself)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e1895f18",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"75.5 ms ± 1.69 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n",
"1.92 s ± 66.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"%timeit test_prod_eself_func(RANDOM_TESTS, opt_prod_eself)\n",
"%timeit test_prod_eself_func(RANDOM_TESTS, naive_prod_eself)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "73431fca",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"def plot_test_results(\n",
" random_tests: list[tuple[list[int], list[int]]],\n",
" prod_func: Callable[[list[int]], list[int]]\n",
"):\n",
" x_vals = [len(test[0]) for test in random_tests]\n",
" y_vals = [None] * len(random_tests)\n",
"\n",
" idx = 0\n",
"\n",
" for test_inp, test_ans in random_tests:\n",
" total = 0\n",
"\n",
" for _ in range(10):\n",
" t1 = time.perf_counter_ns()\n",
" assert prod_func(test_inp) == test_ans\n",
" total += (time.perf_counter_ns() - t1) * 1_000\n",
"\n",
" y_vals[idx] = round(total / 10, 3)\n",
" idx += 1\n",
"\n",
" plt.plot(x_vals, y_vals)\n",
" plt.ylabel('time')\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "c68c61cf",
"metadata": {},
"outputs": [],
"source": [
"for test_input in RANDOM_TESTS:\n",
" if 0 in test_input[0]:\n",
" print(len(test_input[0]))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "fd1edc58",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_test_results(RANDOM_TESTS, naive_prod_eself)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "2225c010",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGsCAYAAADzMYzrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABpBUlEQVR4nO3dd3hc5ZU/8O+dKo2kUe/NRXLvBVumG1OMYU0JBgLBgU0hmBDIDzY4GxYIAQc2BTZhgbDEtARDABMHAwZsMBjcq9y7JcvqfWakqff3x517p2gkjWyNpn0/z6MHMboz816K5vic855XEEVRBBEREVEEUoV7AURERES9YaBCREREEYuBChEREUUsBipEREQUsRioEBERUcRioEJEREQRi4EKERERRSwGKkRERBSxGKgQERFRxGKgQkRERBErZgKVr776Ctdeey0KCgogCAI++OCDAb/GmjVrMHv2bKSkpCA7Oxs33ngjTp48OehrJSIiouDETKBiNpsxefJkPP/882f1/BMnTmDhwoWYO3cudu3ahTVr1qCpqQk33HDDIK+UiIiIgiXE4qGEgiBg5cqVuO6665THrFYr/vM//xNvvfUW2traMGHCBDz99NO45JJLAADvvvsubr31VlitVqhUUvz2r3/9CwsXLoTVaoVWqw3DnRAREcW3mMmo9Ofee+/Fxo0bsWLFCuzZswc33XQTrrrqKhw5cgQAMH36dKhUKixfvhxOpxPt7e144403MG/ePAYpREREYRIXGZWqqiqMGDECVVVVKCgoUK6bN28ezjvvPDz11FMAgPXr12PRokVobm6G0+lERUUFPvroI6SlpYXhLoiIiCguMiqVlZVwOp0YNWoUkpOTla/169fj2LFjAIC6ujr88Ic/xOLFi7F161asX78eOp0O3/nOdxCDsRwREVFU0IR7AUPBZDJBrVZj+/btUKvVPj9LTk4GADz//PNITU3FM888o/zszTffRHFxMTZv3ozZs2cP6ZqJiIgoTgKVqVOnwul0oqGhARdeeGHAaywWi9JEK5ODGpfLFfI1EhERUU8xU/oxmUzYtWsXdu3aBUDabrxr1y5UVVVh1KhRuO2223DHHXfg/fffx4kTJ7BlyxYsW7YMq1evBgAsWLAAW7duxa9//WscOXIEO3bswJ133onS0lJMnTo1jHdGREQUv2KmmfbLL7/EpZde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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_test_results(RANDOM_TESTS, opt_prod_eself)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment