feat(1019-squares-of-a-sorted-array): add py3 solution

This commit is contained in:
Sangeeth Sudheer 2022-04-03 20:34:00 +05:30
parent 2b889c6f89
commit eb41db0efa
3 changed files with 46 additions and 7 deletions

View File

@ -1,6 +1,7 @@
#!/usr/bin/env zx #!/usr/bin/env zx
import Turndown from "turndown"; import Turndown from "turndown";
import * as cheerio from "cheerio";
import { client, gql } from "./graphql.mjs"; import { client, gql } from "./graphql.mjs";
const langExt = { python3: "py", nodejs: "js", cpp: "cpp" }; const langExt = { python3: "py", nodejs: "js", cpp: "cpp" };
@ -35,14 +36,12 @@ const questionDir = `${questionIdPadded}_${q.titleSlug}`;
const solutionDir = `${questionDir}/${language}`; const solutionDir = `${questionDir}/${language}`;
const solutionFilePath = `${solutionDir}/solution.${langExt[language]}`; const solutionFilePath = `${solutionDir}/solution.${langExt[language]}`;
const $ch = cheerio.load(q.content);
$ch("pre").wrapInner("<code></code>");
const td = new Turndown({}); const td = new Turndown({});
td.addRule("pre-code", { const mdBody = td.turndown($ch("body").html());
filter: "pre",
replacement(content) {
return "```\n" + content + "```";
},
});
const mdBody = td.turndown(q.content);
await $`mkdir -p ${solutionDir}`; await $`mkdir -p ${solutionDir}`;
await $`touch ${solutionFilePath}`; await $`touch ${solutionFilePath}`;

View File

@ -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?

View File

@ -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