From eb41db0efaca44ee84fccf4cb552befa66236948 Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Sun, 3 Apr 2022 20:34:00 +0530 Subject: [PATCH] feat(1019-squares-of-a-sorted-array): add py3 solution --- .scripts/addnew | 13 +++++------ 1019_squares-of-a-sorted-array/README.md | 23 +++++++++++++++++++ .../python3/solution.py | 17 ++++++++++++++ 3 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 1019_squares-of-a-sorted-array/README.md create mode 100644 1019_squares-of-a-sorted-array/python3/solution.py diff --git a/.scripts/addnew b/.scripts/addnew index e80fcad..5c7996f 100755 --- a/.scripts/addnew +++ b/.scripts/addnew @@ -1,6 +1,7 @@ #!/usr/bin/env zx import Turndown from "turndown"; +import * as cheerio from "cheerio"; import { client, gql } from "./graphql.mjs"; const langExt = { python3: "py", nodejs: "js", cpp: "cpp" }; @@ -35,14 +36,12 @@ const questionDir = `${questionIdPadded}_${q.titleSlug}`; const solutionDir = `${questionDir}/${language}`; const solutionFilePath = `${solutionDir}/solution.${langExt[language]}`; +const $ch = cheerio.load(q.content); + +$ch("pre").wrapInner(""); + const td = new Turndown({}); -td.addRule("pre-code", { - filter: "pre", - replacement(content) { - return "```\n" + content + "```"; - }, -}); -const mdBody = td.turndown(q.content); +const mdBody = td.turndown($ch("body").html()); await $`mkdir -p ${solutionDir}`; await $`touch ${solutionFilePath}`; diff --git a/1019_squares-of-a-sorted-array/README.md b/1019_squares-of-a-sorted-array/README.md new file mode 100644 index 0000000..fae4092 --- /dev/null +++ b/1019_squares-of-a-sorted-array/README.md @@ -0,0 +1,23 @@ +Given an integer array `nums` sorted in **non-decreasing** order, return _an array of **the squares of each number** sorted in non-decreasing order_. + +**Example 1:** + + Input: nums = [-4,-1,0,3,10] + Output: [0,1,9,16,100] + Explanation: After squaring, the array becomes [16,1,0,9,100]. + After sorting, it becomes [0,1,9,16,100]. + + +**Example 2:** + + Input: nums = [-7,-3,2,3,11] + Output: [4,9,9,49,121] + + +**Constraints:** + +* `1 <= nums.length <= 104` +* `-104 <= nums[i] <= 104` +* `nums` is sorted in **non-decreasing** order. + +**Follow up:** Squaring each element and sorting the new array is very trivial, could you find an `O(n)` solution using a different approach? diff --git a/1019_squares-of-a-sorted-array/python3/solution.py b/1019_squares-of-a-sorted-array/python3/solution.py new file mode 100644 index 0000000..7e20224 --- /dev/null +++ b/1019_squares-of-a-sorted-array/python3/solution.py @@ -0,0 +1,17 @@ +class Solution: + def sortedSquares(self, nums: List[int]) -> List[int]: + left = 0 + right = i = len(nums) - 1 + result = [None] * len(nums) + + while i >= 0: + if abs(nums[left]) > abs(nums[right]): + result[i] = nums[left] ** 2 + left += 1 + else: + result[i] = nums[right] ** 2 + right -= 1 + + i -= 1 + + return result