diff --git a/package-lock.json b/package-lock.json
index c6e92576..8a42bbdd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1631,6 +1631,12 @@
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz",
"integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA=="
},
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+ "dev": true
+ },
"@types/minimatch": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
@@ -2371,6 +2377,17 @@
"es-abstract": "^1.17.0-next.1"
}
},
+ "array.prototype.flatmap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
+ "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1"
+ }
+ },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -2484,10 +2501,16 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
"integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
},
+ "axe-core": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz",
+ "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==",
+ "dev": true
+ },
"axobject-query": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz",
- "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ=="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
},
"babel-code-frame": {
"version": "6.26.0",
@@ -2945,9 +2968,9 @@
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
"bootstrap": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz",
- "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA=="
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.0.tgz",
+ "integrity": "sha512-Z93QoXvodoVslA+PWNdk23Hze4RBYIkpb5h8I2HY2Tu2h7A0LpAgLcyrhrSUyo2/Oxm2l1fRZPs1e5hnxnliXA=="
},
"brace-expansion": {
"version": "1.1.11",
@@ -4628,9 +4651,9 @@
"integrity": "sha512-2jhQxJKcjcSpVOQm0NAfuLq8o+130blrcawoumdXT6411xG/xIAOyZodO/y7WTaYlz/NHe3sCCAe/cJLnDsqTw=="
},
"elliptic": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
- "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
"requires": {
"bn.js": "^4.4.0",
"brorand": "^1.0.1",
@@ -4990,31 +5013,125 @@
}
},
"eslint-config-airbnb": {
- "version": "18.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.1.0.tgz",
- "integrity": "sha512-kZFuQC/MPnH7KJp6v95xsLBf63G/w7YqdPfQ0MUanxQ7zcKUNG8j+sSY860g3NwCBOa62apw16J6pRN+AOgXzw==",
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0.tgz",
+ "integrity": "sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg==",
"dev": true,
"requires": {
- "eslint-config-airbnb-base": "^14.1.0",
+ "eslint-config-airbnb-base": "^14.2.0",
"object.assign": "^4.1.0",
- "object.entries": "^1.1.1"
+ "object.entries": "^1.1.2"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
+ "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "has": "^1.0.3"
+ }
+ }
}
},
"eslint-config-airbnb-base": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz",
- "integrity": "sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz",
+ "integrity": "sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==",
"dev": true,
"requires": {
"confusing-browser-globals": "^1.0.9",
"object.assign": "^4.1.0",
- "object.entries": "^1.1.1"
+ "object.entries": "^1.1.2"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
+ "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "has": "^1.0.3"
+ }
+ }
}
},
"eslint-config-prettier": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz",
- "integrity": "sha512-AtndijGte1rPILInUdHjvKEGbIV06NuvPrqlIEaEaWtbtvJh464mDeyGMdZEQMsGvC0ZVkiex1fSNcC4HAbRGg==",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz",
+ "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==",
"dev": true,
"requires": {
"get-stdin": "^6.0.0"
@@ -5037,9 +5154,9 @@
}
},
"eslint-import-resolver-node": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
- "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
+ "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
"requires": {
"debug": "^2.6.9",
"resolve": "^1.13.1"
@@ -5073,9 +5190,9 @@
}
},
"eslint-module-utils": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz",
- "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
+ "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
"requires": {
"debug": "^2.6.9",
"pkg-dir": "^2.0.0"
@@ -5156,28 +5273,31 @@
}
},
"eslint-plugin-import": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz",
- "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
+ "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
+ "dev": true,
"requires": {
- "array-includes": "^3.0.3",
- "array.prototype.flat": "^1.2.1",
+ "array-includes": "^3.1.1",
+ "array.prototype.flat": "^1.2.3",
"contains-path": "^0.1.0",
"debug": "^2.6.9",
"doctrine": "1.5.0",
- "eslint-import-resolver-node": "^0.3.2",
- "eslint-module-utils": "^2.4.1",
+ "eslint-import-resolver-node": "^0.3.3",
+ "eslint-module-utils": "^2.6.0",
"has": "^1.0.3",
"minimatch": "^3.0.4",
- "object.values": "^1.1.0",
+ "object.values": "^1.1.1",
"read-pkg-up": "^2.0.0",
- "resolve": "^1.12.0"
+ "resolve": "^1.17.0",
+ "tsconfig-paths": "^3.9.0"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
"requires": {
"ms": "2.0.0"
}
@@ -5186,6 +5306,7 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
"integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
"requires": {
"esutils": "^2.0.2",
"isarray": "^1.0.0"
@@ -5195,6 +5316,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
"requires": {
"locate-path": "^2.0.0"
}
@@ -5203,6 +5325,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
@@ -5214,6 +5337,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -5222,12 +5346,14 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
},
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
"requires": {
"p-try": "^1.0.0"
}
@@ -5236,6 +5362,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
"requires": {
"p-limit": "^1.1.0"
}
@@ -5243,17 +5370,20 @@
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
},
"path-type": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
"requires": {
"pify": "^2.0.0"
}
@@ -5262,6 +5392,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
"requires": {
"load-json-file": "^2.0.0",
"normalize-package-data": "^2.3.2",
@@ -5272,90 +5403,175 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
"requires": {
"find-up": "^2.0.0",
"read-pkg": "^2.0.0"
}
},
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
}
}
},
"eslint-plugin-jsx-a11y": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
- "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz",
+ "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==",
+ "dev": true,
"requires": {
- "@babel/runtime": "^7.4.5",
- "aria-query": "^3.0.0",
- "array-includes": "^3.0.3",
+ "@babel/runtime": "^7.10.2",
+ "aria-query": "^4.2.2",
+ "array-includes": "^3.1.1",
"ast-types-flow": "^0.0.7",
- "axobject-query": "^2.0.2",
- "damerau-levenshtein": "^1.0.4",
- "emoji-regex": "^7.0.2",
+ "axe-core": "^3.5.4",
+ "axobject-query": "^2.1.2",
+ "damerau-levenshtein": "^1.0.6",
+ "emoji-regex": "^9.0.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.2.1"
+ "jsx-ast-utils": "^2.4.1",
+ "language-tags": "^1.0.5"
},
"dependencies": {
+ "@babel/runtime": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz",
+ "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.5.tgz",
+ "integrity": "sha512-RMafpmrNB5E/bwdSphLr8a8++9TosnyJp98RZzI6VOx2R2CCMpsXXXRvmI700O9oEKpXdZat6oEK68/F0zjd4A==",
+ "dev": true,
+ "requires": {
+ "core-js-pure": "^3.0.0",
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
"aria-query": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
- "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "dev": true,
"requires": {
- "ast-types-flow": "0.0.7",
- "commander": "^2.11.0"
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
}
},
"emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz",
+ "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==",
+ "dev": true
}
}
},
"eslint-plugin-prettier": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz",
- "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz",
+ "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
}
},
"eslint-plugin-react": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
- "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
+ "version": "7.20.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz",
+ "integrity": "sha512-txbo090buDeyV0ugF3YMWrzLIUqpYTsWSDZV9xLSmExE1P/Kmgg9++PD931r+KEWS66O1c9R4srLVVHmeHpoAg==",
+ "dev": true,
"requires": {
"array-includes": "^3.1.1",
+ "array.prototype.flatmap": "^1.2.3",
"doctrine": "^2.1.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.2.3",
- "object.entries": "^1.1.1",
+ "jsx-ast-utils": "^2.4.1",
+ "object.entries": "^1.1.2",
"object.fromentries": "^2.0.2",
"object.values": "^1.1.1",
"prop-types": "^15.7.2",
- "resolve": "^1.15.1",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.2",
- "xregexp": "^4.3.0"
+ "resolve": "^1.17.0",
+ "string.prototype.matchall": "^4.0.2"
},
"dependencies": {
"doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
"requires": {
"esutils": "^2.0.2"
}
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ "es-abstract": {
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
+ "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "has": "^1.0.3"
+ }
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
}
}
},
@@ -8970,11 +9186,11 @@
}
},
"jsx-ast-utils": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz",
- "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
+ "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
"requires": {
- "array-includes": "^3.0.3",
+ "array-includes": "^3.1.1",
"object.assign": "^4.1.0"
}
},
@@ -8996,6 +9212,21 @@
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
},
+ "language-subtag-registry": {
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz",
+ "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==",
+ "dev": true
+ },
+ "language-tags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
+ "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "dev": true,
+ "requires": {
+ "language-subtag-registry": "~0.3.2"
+ }
+ },
"last-call-webpack-plugin": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
@@ -9125,9 +9356,9 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"lodash._reinterpolate": {
"version": "3.0.0",
@@ -12325,9 +12556,9 @@
"integrity": "sha512-AjC7UOZMvygrWTc2hKxTDvlMXEtbmA0IgJjmkhgmQQ3RkXrWR11xEagLGFGaNyaPnmg24oaIiaNPnEoftUhfXA=="
},
"react-icons": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-3.9.0.tgz",
- "integrity": "sha512-gKbYKR+4QsD3PmIHLAM9TDDpnaTsr3XZeK1NTAb6WQQ+gxEdJ0xuCgLq0pxXdS7Utg2AIpcVhM1ut/jlDhcyNg==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-3.10.0.tgz",
+ "integrity": "sha512-WsQ5n1JToG9VixWilSo1bHv842Cj5aZqTGiS3Ud47myF6aK7S/IUY2+dHcBdmkQcCFRuHsJ9OMUI0kTDfjyZXQ==",
"requires": {
"camelcase": "^5.0.0"
},
@@ -12438,11 +12669,200 @@
"workbox-webpack-plugin": "4.3.1"
},
"dependencies": {
+ "aria-query": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
+ "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
+ "requires": {
+ "ast-types-flow": "0.0.7",
+ "commander": "^2.11.0"
+ }
+ },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "requires": {
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "eslint-plugin-import": {
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz",
+ "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==",
+ "requires": {
+ "array-includes": "^3.0.3",
+ "array.prototype.flat": "^1.2.1",
+ "contains-path": "^0.1.0",
+ "debug": "^2.6.9",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "^0.3.2",
+ "eslint-module-utils": "^2.4.1",
+ "has": "^1.0.3",
+ "minimatch": "^3.0.4",
+ "object.values": "^1.1.0",
+ "read-pkg-up": "^2.0.0",
+ "resolve": "^1.12.0"
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
+ "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
+ "requires": {
+ "@babel/runtime": "^7.4.5",
+ "aria-query": "^3.0.0",
+ "array-includes": "^3.0.3",
+ "ast-types-flow": "^0.0.7",
+ "axobject-query": "^2.0.2",
+ "damerau-levenshtein": "^1.0.4",
+ "emoji-regex": "^7.0.2",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^2.2.1"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
+ "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
+ "requires": {
+ "array-includes": "^3.1.1",
+ "doctrine": "^2.1.0",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^2.2.3",
+ "object.entries": "^1.1.1",
+ "object.fromentries": "^2.0.2",
+ "object.values": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "resolve": "^1.15.1",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.2",
+ "xregexp": "^4.3.0"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "requires": {
+ "pify": "^2.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "requires": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ }
+ },
"resolve": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
@@ -12455,22 +12875,27 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
}
}
},
"react-scroll": {
- "version": "1.7.16",
- "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.7.16.tgz",
- "integrity": "sha512-f4M5AdL+3cw3MJ7c/T0hPMY2iHCeQLDXV13lRanAFQ6JIt9xyAdHCpTH9mLUQt9SQh4pRarD+Qc7KhU6qMx3Yg==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.0.tgz",
+ "integrity": "sha512-oZfBXPhcxYPR8elI9tC3ORT6+iqiPPJWslsdR9intbNI5PVSa4XoAfC0I/cB3zk5lxQ/NSexCnT+8RqJL8mSZQ==",
"requires": {
"lodash.throttle": "^4.1.1",
- "prop-types": "^15.5.8"
+ "prop-types": "^15.7.2"
}
},
"react-table": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.0.0.tgz",
- "integrity": "sha512-/RKUYLuqrupUs0qHdjdQLmgwdQ9mgXPnpshqv2T+OQUGhTu0XuLXVc6GOIywemXNf6qjL3dj81O6zALLK74Emw=="
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.3.0.tgz",
+ "integrity": "sha512-VQlVgvKItkpO+tAtWf/xdn9a8RU8gVqG25Ymrw9PczyBrM2Cr+HivHVQ2VsYWy8SieL0bcCNk3C++mbtWgXLfQ=="
},
"react-test-renderer": {
"version": "16.13.1",
@@ -12483,6 +12908,14 @@
"scheduler": "^0.19.1"
}
},
+ "react-toggle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz",
+ "integrity": "sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw==",
+ "requires": {
+ "classnames": "^2.2.5"
+ }
+ },
"react-tooltip": {
"version": "3.11.6",
"resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.11.6.tgz",
@@ -12503,14 +12936,13 @@
}
},
"reactstrap": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-8.4.1.tgz",
- "integrity": "sha512-oAjp9PYYUGKl7SLXwrQ1oRIrYw0MqfO2mUqYgGapFKHG2uwjEtLip5rYxtMujkGx3COjH5FX1WtcfNU4oqpH0Q==",
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-8.5.1.tgz",
+ "integrity": "sha512-igpdw8DiW48ZtwGOo2unwlsILFlF7deiqFUAqc3wrsX/0H0OkvmezJdkjJx2X9jaHfjGdPpm0vu5VN/kk7tv+A==",
"requires": {
"@babel/runtime": "^7.2.0",
"classnames": "^2.2.3",
"prop-types": "^15.5.8",
- "react-lifecycles-compat": "^3.0.4",
"react-popper": "^1.3.6",
"react-transition-group": "^2.3.1"
}
@@ -13949,6 +14381,52 @@
"function-bind": "^1.1.1"
}
},
+ "string.prototype.trimend": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
+ "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ }
+ }
+ },
"string.prototype.trimleft": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
@@ -13967,6 +14445,52 @@
"function-bind": "^1.1.1"
}
},
+ "string.prototype.trimstart": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
+ "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ }
+ }
+ },
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -14604,6 +15128,35 @@
"resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz",
"integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ=="
},
+ "tsconfig-paths": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
+ "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
+ "dev": true,
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
"tslib": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
@@ -16612,9 +17165,9 @@
}
},
"websocket-extensions": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
- "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
},
"whatwg-encoding": {
"version": "1.0.5",
diff --git a/package.json b/package.json
index 35d6e25a..0f9fa654 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
- "bootstrap": "^4.4.1",
+ "bootstrap": "^4.5.0",
"classnames": "^2.2.6",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",
@@ -16,24 +16,25 @@
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-ga": "^2.7.0",
- "react-icons": "^3.8.0",
+ "react-icons": "^3.10.0",
"react-markdown": "^4.3.1",
"react-scripts": "^3.4.0",
- "react-scroll": "^1.7.15",
- "react-table": "^7.0.0-rc.15",
+ "react-scroll": "^1.8.0",
+ "react-table": "^7.3.0",
"react-test-renderer": "^16.12.0",
+ "react-toggle": "^4.1.1",
"react-tooltip": "^3.11.2",
- "reactstrap": "^8.2.0"
+ "reactstrap": "^8.5.1"
},
"devDependencies": {
"babel-eslint": "^10.0.3",
"eslint": "^6.8.0",
- "eslint-config-airbnb": "^18.0.1",
- "eslint-config-prettier": "^6.9.0",
- "eslint-plugin-import": "^2.19.1",
- "eslint-plugin-jsx-a11y": "^6.2.3",
- "eslint-plugin-prettier": "^3.1.2",
- "eslint-plugin-react": "^7.17.0",
+ "eslint-config-airbnb": "^18.2.0",
+ "eslint-config-prettier": "^6.11.0",
+ "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-jsx-a11y": "^6.3.1",
+ "eslint-plugin-prettier": "^3.1.4",
+ "eslint-plugin-react": "^7.20.3",
"husky": "^3.1.0",
"prettier": "^1.19.1",
"pretty-quick": "^2.0.1"
diff --git a/src/components/Table/index.js b/src/components/Table/index.js
index fa32432d..c4d4db7b 100644
--- a/src/components/Table/index.js
+++ b/src/components/Table/index.js
@@ -6,6 +6,7 @@ import {
Badge,
NavLink,
} from 'reactstrap';
+import Toggle from 'react-toggle';
import ReactTooltip from 'react-tooltip';
import { useTable, useFilters, useSortBy } from 'react-table';
import { FaQuestionCircle, FaLock } from 'react-icons/fa';
@@ -18,20 +19,41 @@ import { Event } from '../Shared/Tracking';
import questions from '../../data';
+import 'react-toggle/style.css';
import './styles.scss';
const images = require.context('../../icons', true);
const Table = () => {
- const [checked, setChecked] = useState(
+ let checkedList =
JSON.parse(localStorage.getItem('checked')) ||
- new Array(questions.length).fill(false),
+ new Array(questions.length).fill(false);
+
+ if (checkedList.length !== questions.length) {
+ const newCheckedList = new Array(questions.length).fill(false);
+
+ for (let i = 0; i < checkedList.length; i += 1) {
+ newCheckedList[i] = checkedList[i];
+ }
+
+ checkedList = newCheckedList;
+ window.localStorage.setItem('checked', JSON.stringify(checkedList));
+ }
+
+ const [checked, setChecked] = useState(checkedList);
+
+ const [showPatterns, setShowPatterns] = useState(
+ JSON.parse(localStorage.getItem('showPatterns')) || new Array(1).fill(true),
);
useEffect(() => {
window.localStorage.setItem('checked', JSON.stringify(checked));
}, [checked]);
+ useEffect(() => {
+ window.localStorage.setItem('showPatterns', JSON.stringify(showPatterns));
+ }, [showPatterns]);
+
const data = React.useMemo(() => questions, []);
const defaultColumn = React.useMemo(
@@ -54,8 +76,6 @@ const Table = () => {
return (
{
checked[cellInfo.row.original.id] = !checked[
@@ -108,20 +128,62 @@ const Table = () => {
disableFilters: true,
},
{
- Header: 'Pattern',
+ Header: () => {
+ return (
+
+ );
+ },
accessor: 'pattern',
+ Cell: cellInfo => {
+ const patterns = `${cellInfo.row.original.pattern}`
+ .split(',')
+ .map(pattern => {
+ if (showPatterns[0] || checked[cellInfo.row.original.id]) {
+ return (
+
+ {pattern}
+
+ );
+ }
+
+ return (
+
+ ***
+
+ );
+ });
+
+ return {patterns}
;
+ },
+
Filter: SelectColumnFilter,
},
{
Header: 'Difficulty',
accessor: 'difficulty',
Cell: cellInfo => (
-
- {cellInfo.row.original.difficulty}
-
+
+
+ {cellInfo.row.original.difficulty}
+
+
),
Filter: SelectDifficultyColumnFilter,
},
@@ -172,9 +234,6 @@ const Table = () => {
columns,
data,
defaultColumn,
- initialState: {
- sortBy: [{ id: 'pattern' }],
- },
},
useFilters,
useSortBy,
diff --git a/src/components/Table/styles.scss b/src/components/Table/styles.scss
index a25a9306..f55888e1 100644
--- a/src/components/Table/styles.scss
+++ b/src/components/Table/styles.scss
@@ -31,8 +31,13 @@
background-color: #d9534f;
}
- .companies {
+ .companies,
+ .patterns {
justify-content: space-evenly;
margin: 0;
}
+
+ .react-toggle {
+ top: 7px;
+ }
}
diff --git a/src/data/index.js b/src/data/index.js
index 54962342..00e7bb17 100644
--- a/src/data/index.js
+++ b/src/data/index.js
@@ -3,7 +3,7 @@ const questions = [
id: 0,
name: 'Contains Duplicate',
url: 'https://leetcode.com/problems/contains-duplicate/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Apple'],
@@ -12,7 +12,7 @@ const questions = [
id: 1,
name: 'Missing Number',
url: 'https://leetcode.com/problems/missing-number/',
- pattern: 'Arrays',
+ pattern: ['Arrays', 'Bit Manipulation'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Microsoft', 'Apple'],
@@ -22,7 +22,7 @@ const questions = [
name: 'Find All Numbers Disappeared in an Array',
url:
'https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Easy',
premium: false,
companies: ['Microsoft', 'Apple'],
@@ -31,7 +31,7 @@ const questions = [
id: 3,
name: 'Single Number',
url: 'https://leetcode.com/problems/single-number/',
- pattern: 'Arrays',
+ pattern: ['Arrays', 'Bit Manipulation'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -48,7 +48,7 @@ const questions = [
id: 4,
name: 'Product of Array Except Self',
url: 'https://leetcode.com/problems/product-of-array-except-self/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -70,7 +70,7 @@ const questions = [
id: 5,
name: 'Find the Duplicate Number',
url: 'https://leetcode.com/problems/find-the-duplicate-number/',
- pattern: 'Arrays',
+ pattern: ['Arrays', 'Binary Search', 'Two Pointers'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Google', 'Microsoft', 'Facebook', 'Apple'],
@@ -79,7 +79,7 @@ const questions = [
id: 6,
name: 'Find All Duplicates in an Array',
url: 'https://leetcode.com/problems/find-all-duplicates-in-an-array/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Facebook', 'Apple'],
@@ -88,7 +88,7 @@ const questions = [
id: 7,
name: 'Set Matrix Zeroes',
url: 'https://leetcode.com/problems/set-matrix-zeroes/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Microsoft', 'Oracle'],
@@ -97,7 +97,7 @@ const questions = [
id: 8,
name: 'Spiral Matrix',
url: 'https://leetcode.com/problems/spiral-matrix/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -114,7 +114,7 @@ const questions = [
id: 9,
name: 'Rotate Image',
url: 'https://leetcode.com/problems/rotate-image/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Apple', 'Facebook'],
@@ -123,7 +123,7 @@ const questions = [
id: 10,
name: 'Word Search',
url: 'https://leetcode.com/problems/word-search/',
- pattern: 'Arrays',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -143,7 +143,7 @@ const questions = [
id: 11,
name: 'First Missing Positive',
url: 'https://leetcode.com/problems/first-missing-positive/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -161,7 +161,7 @@ const questions = [
id: 12,
name: 'Longest Consecutive Sequence',
url: 'https://leetcode.com/problems/longest-consecutive-sequence/',
- pattern: 'Arrays',
+ pattern: ['Arrays'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -179,7 +179,7 @@ const questions = [
id: 13,
name: 'Letter Case Permutation',
url: 'https://leetcode.com/problems/letter-case-permutation/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon'],
@@ -188,7 +188,7 @@ const questions = [
id: 14,
name: 'Subsets',
url: 'https://leetcode.com/problems/subsets/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -204,7 +204,7 @@ const questions = [
id: 15,
name: 'Subsets II',
url: 'https://leetcode.com/problems/subsets-ii/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Bloomberg'],
@@ -213,7 +213,7 @@ const questions = [
id: 16,
name: 'Permutations',
url: 'https://leetcode.com/problems/permutations/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -233,7 +233,7 @@ const questions = [
id: 17,
name: 'Permutations II',
url: 'https://leetcode.com/problems/permutations-ii/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Bloomberg'],
@@ -242,7 +242,7 @@ const questions = [
id: 18,
name: 'Combinations',
url: 'https://leetcode.com/problems/combinations/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: ['Microsoft', 'Google', 'Amazon'],
@@ -251,7 +251,7 @@ const questions = [
id: 19,
name: 'Combination Sum',
url: 'https://leetcode.com/problems/combination-sum/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Microsoft', 'Airbnb', 'Uber'],
@@ -260,7 +260,7 @@ const questions = [
id: 20,
name: 'Combination Sum II',
url: 'https://leetcode.com/problems/combination-sum-ii/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: ['Google', 'Microsoft', 'Amazon'],
@@ -269,7 +269,7 @@ const questions = [
id: 21,
name: 'Combination Sum III',
url: 'https://leetcode.com/problems/combination-sum-iii/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: ['Microsoft', 'Amazon'],
@@ -278,7 +278,7 @@ const questions = [
id: 22,
name: 'Generate Parentheses',
url: 'https://leetcode.com/problems/generate-parentheses/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -295,7 +295,7 @@ const questions = [
id: 23,
name: 'Target Sum',
url: 'https://leetcode.com/problems/target-sum/',
- pattern: 'DFS',
+ pattern: ['DFS', 'Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook'],
@@ -304,7 +304,7 @@ const questions = [
id: 24,
name: 'Palindrome Partitioning',
url: 'https://leetcode.com/problems/palindrome-partitioning/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon'],
@@ -313,7 +313,7 @@ const questions = [
id: 25,
name: 'Letter Combinations of a Phone Number',
url: 'https://leetcode.com/problems/letter-combinations-of-a-phone-number/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -333,7 +333,7 @@ const questions = [
id: 26,
name: 'Generalized Abbreviation',
url: 'https://leetcode.com/problems/generalized-abbreviation/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Medium',
premium: true,
companies: ['Google'],
@@ -342,7 +342,7 @@ const questions = [
id: 27,
name: 'Sudoku Solver',
url: 'https://leetcode.com/problems/sudoku-solver/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Hard',
premium: false,
companies: ['Microsoft', 'Amazon', 'Apple', 'Oracle'],
@@ -351,7 +351,7 @@ const questions = [
id: 28,
name: 'N-Queens',
url: 'https://leetcode.com/problems/n-queens/',
- pattern: 'Backtracking',
+ pattern: ['Backtracking'],
difficulty: 'Hard',
premium: false,
companies: ['Apple', 'Oracle', 'Amazon'],
@@ -360,7 +360,7 @@ const questions = [
id: 29,
name: 'Climbing Stairs',
url: 'https://leetcode.com/problems/climbing-stairs/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -378,7 +378,7 @@ const questions = [
id: 30,
name: 'House Robber',
url: 'https://leetcode.com/problems/house-robber/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Easy',
premium: false,
companies: ['Google', 'Apple', 'Adobe', 'Microsoft', 'Amazon'],
@@ -387,7 +387,7 @@ const questions = [
id: 31,
name: 'Best Time to Buy and Sell Stock',
url: 'https://leetcode.com/problems/best-time-to-buy-and-sell-stock/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -408,7 +408,7 @@ const questions = [
id: 32,
name: 'Maximum Subarray',
url: 'https://leetcode.com/problems/maximum-subarray/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -429,7 +429,7 @@ const questions = [
id: 33,
name: 'Range Sum Query - Immutable',
url: 'https://leetcode.com/problems/range-sum-query-immutable/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Easy',
premium: false,
companies: ['Google', 'Facebook'],
@@ -438,7 +438,7 @@ const questions = [
id: 34,
name: 'House Robber II',
url: 'https://leetcode.com/problems/house-robber-ii/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Google'],
@@ -447,7 +447,7 @@ const questions = [
id: 35,
name: 'Coin Change',
url: 'https://leetcode.com/problems/coin-change/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -466,7 +466,7 @@ const questions = [
id: 36,
name: 'Maximum Product Subarray',
url: 'https://leetcode.com/problems/maximum-product-subarray/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -482,7 +482,7 @@ const questions = [
id: 37,
name: 'Longest Increasing Subsequence',
url: 'https://leetcode.com/problems/longest-increasing-subsequence/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -499,7 +499,7 @@ const questions = [
id: 38,
name: 'Longest Palindromic Substring',
url: 'https://leetcode.com/problems/longest-palindromic-substring/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -518,7 +518,7 @@ const questions = [
id: 39,
name: 'Word Break',
url: 'https://leetcode.com/problems/word-break/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -538,7 +538,7 @@ const questions = [
id: 40,
name: 'Combination Sum IV',
url: 'https://leetcode.com/problems/combination-sum-iv/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Google'],
@@ -547,7 +547,7 @@ const questions = [
id: 41,
name: 'Decode Ways',
url: 'https://leetcode.com/problems/decode-ways/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -565,7 +565,7 @@ const questions = [
id: 42,
name: 'Unique Paths',
url: 'https://leetcode.com/problems/unique-paths/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -583,7 +583,7 @@ const questions = [
id: 43,
name: 'Jump Game',
url: 'https://leetcode.com/problems/jump-game/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming', 'Greedy'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Adobe', 'Google', 'Bloomberg', 'Oracle'],
@@ -592,7 +592,7 @@ const questions = [
id: 44,
name: 'Palindromic Substrings',
url: 'https://leetcode.com/problems/palindromic-substrings/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Apple', 'Twitter', 'Google', 'Citadel'],
@@ -602,7 +602,7 @@ const questions = [
name: 'Number of Longest Increasing Subsequence',
url:
'https://leetcode.com/problems/number-of-longest-increasing-subsequence/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon'],
@@ -611,7 +611,7 @@ const questions = [
id: 46,
name: 'Partition Equal Subset Sum',
url: 'https://leetcode.com/problems/partition-equal-subset-sum/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook'],
@@ -620,7 +620,7 @@ const questions = [
id: 47,
name: 'Partition to K Equal Sum Subsets',
url: 'https://leetcode.com/problems/partition-to-k-equal-sum-subsets/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['LinkedIn', 'Amazon', 'Facebook'],
@@ -630,7 +630,7 @@ const questions = [
name: 'Best Time to Buy and Sell Stock with Cooldown',
url:
'https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Google', 'Amazon', 'Apple'],
@@ -639,7 +639,7 @@ const questions = [
id: 49,
name: 'Counting Bits',
url: 'https://leetcode.com/problems/counting-bits/',
- pattern: 'Dynamic Programming',
+ pattern: ['Dynamic Programming'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook'],
@@ -648,7 +648,7 @@ const questions = [
id: 50,
name: 'Linked List Cycle',
url: 'https://leetcode.com/problems/linked-list-cycle/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Apple', 'Microsoft', 'Goldman Sachs'],
@@ -657,7 +657,7 @@ const questions = [
id: 51,
name: 'Middle of the Linked List',
url: 'https://leetcode.com/problems/middle-of-the-linked-list/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Apple', 'Oracle'],
@@ -666,7 +666,7 @@ const questions = [
id: 52,
name: 'Palindrome Linked List',
url: 'https://leetcode.com/problems/palindrome-linked-list/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Microsoft', 'Apple', 'Snapchat', 'Bloomberg'],
@@ -675,7 +675,7 @@ const questions = [
id: 53,
name: 'Remove Linked List Elements',
url: 'https://leetcode.com/problems/remove-linked-list-elements/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Easy',
premium: false,
companies: ['Bloomberg', 'Google', 'Capital One'],
@@ -684,7 +684,7 @@ const questions = [
id: 54,
name: 'Remove Duplicates from Sorted List',
url: 'https://leetcode.com/problems/remove-duplicates-from-sorted-list/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Apple', 'Microsoft'],
@@ -693,7 +693,7 @@ const questions = [
id: 55,
name: 'Linked List Cycle II',
url: 'https://leetcode.com/problems/linked-list-cycle-ii/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Medium',
premium: false,
companies: ['Microsoft', 'Apple', 'Adobe'],
@@ -702,7 +702,7 @@ const questions = [
id: 56,
name: 'Add Two Numbers',
url: 'https://leetcode.com/problems/add-two-numbers/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -721,7 +721,7 @@ const questions = [
id: 57,
name: 'Remove Nth Node From End Of List',
url: 'https://leetcode.com/problems/remove-nth-node-from-end-of-list/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Microsoft'],
@@ -730,7 +730,7 @@ const questions = [
id: 58,
name: 'Sort List',
url: 'https://leetcode.com/problems/sort-list/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Medium',
premium: false,
companies: ['Microsoft', 'Amazon', 'Facebook'],
@@ -739,7 +739,7 @@ const questions = [
id: 59,
name: 'Reorder List',
url: 'https://leetcode.com/problems/reorder-list/',
- pattern: 'Fast & Slow Pointers',
+ pattern: ['Fast & Slow Pointers'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Microsoft'],
@@ -748,7 +748,7 @@ const questions = [
id: 60,
name: 'Clone Graph',
url: 'https://leetcode.com/problems/clone-graph/',
- pattern: 'Graphs',
+ pattern: ['BFS', 'DFS', 'Graph'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Microsoft'],
@@ -757,7 +757,7 @@ const questions = [
id: 62,
name: 'Pacific Atlantic Water Flow',
url: 'https://leetcode.com/problems/pacific-atlantic-water-flow/',
- pattern: 'Graphs',
+ pattern: ['BFS', 'DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Microsoft', 'Google', 'Amazon'],
@@ -766,7 +766,7 @@ const questions = [
id: 63,
name: 'Number of Islands',
url: 'https://leetcode.com/problems/number-of-islands/',
- pattern: 'Graphs',
+ pattern: ['BFS', 'DFS', 'Union Find'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -785,7 +785,7 @@ const questions = [
id: 64,
name: 'Graph Valid Tree',
url: 'https://leetcode.com/problems/graph-valid-tree/',
- pattern: 'Graphs',
+ pattern: ['BFS', 'DFS', 'Graph', 'Union Find'],
difficulty: 'Medium',
premium: true,
companies: ['Amazon', 'LinkedIn'],
@@ -795,7 +795,7 @@ const questions = [
name: 'Number of Connected Components in an Undirected Graph',
url:
'https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/',
- pattern: 'Graphs',
+ pattern: ['BFS', 'DFS', 'Graph', 'Union Find'],
difficulty: 'Medium',
premium: true,
companies: ['Facebook', 'Amazon'],
@@ -804,7 +804,7 @@ const questions = [
id: 66,
name: 'Reverse Linked List',
url: 'https://leetcode.com/problems/reverse-linked-list/',
- pattern: 'In-place reversal of a linked list',
+ pattern: ['In-place reversal of a linked list'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -822,7 +822,7 @@ const questions = [
id: 67,
name: 'Reverse Linked List II',
url: 'https://leetcode.com/problems/reverse-linked-list-ii/',
- pattern: 'In-place reversal of a linked list',
+ pattern: ['In-place reversal of a linked list'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Microsoft', 'Oracle'],
@@ -831,7 +831,7 @@ const questions = [
id: 68,
name: 'Rotate List',
url: 'https://leetcode.com/problems/rotate-list/',
- pattern: 'In-place reversal of a linked list',
+ pattern: ['In-place reversal of a linked list'],
difficulty: 'Medium',
premium: false,
companies: ['LinkedIn', 'Amazon', 'Microsoft'],
@@ -840,7 +840,7 @@ const questions = [
id: 69,
name: 'Swap Nodes in Pairs',
url: 'https://leetcode.com/problems/swap-nodes-in-pairs/',
- pattern: 'In-place reversal of a linked list',
+ pattern: ['In-place reversal of a linked list'],
difficulty: 'Medium',
premium: false,
companies: ['Microsoft', 'Facebook', 'Apple', 'Amazon'],
@@ -849,7 +849,7 @@ const questions = [
id: 70,
name: 'Odd Even Linked List',
url: 'https://leetcode.com/problems/odd-even-linked-list/',
- pattern: 'In-place reversal of a linked list',
+ pattern: ['In-place reversal of a linked list'],
difficulty: 'Medium',
premium: false,
companies: ['Capital One', 'Facebook', 'Google', 'Microsoft', 'Bloomberg'],
@@ -858,7 +858,7 @@ const questions = [
id: 71,
name: 'Reverse Nodes in k-Group',
url: 'https://leetcode.com/problems/reverse-nodes-in-k-group/',
- pattern: 'In-place reversal of a linked list',
+ pattern: ['In-place reversal of a linked list'],
difficulty: 'Hard',
premium: false,
companies: ['Microsoft', 'Amazon', 'Facebook', 'Apple', 'Adobe'],
@@ -867,7 +867,7 @@ const questions = [
id: 72,
name: 'Merge Two Sorted Lists',
url: 'https://leetcode.com/problems/merge-two-sorted-lists/',
- pattern: 'K-Way Merge',
+ pattern: ['Two Pointers'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -888,7 +888,7 @@ const questions = [
name: 'Kth Smallest Element in a Sorted Matrix',
url:
'https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/',
- pattern: 'K-Way Merge',
+ pattern: ['Binary Search', 'Heap'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Microsoft', 'Google'],
@@ -897,7 +897,7 @@ const questions = [
id: 74,
name: 'Find K Pairs with Smallest Sums',
url: 'https://leetcode.com/problems/find-k-pairs-with-smallest-sums/',
- pattern: 'K-Way Merge',
+ pattern: ['Heap'],
difficulty: 'Medium',
premium: false,
companies: ['LinkedIn', 'Amazon', 'Facebook'],
@@ -906,7 +906,7 @@ const questions = [
id: 75,
name: 'Merge k Sorted Lists',
url: 'https://leetcode.com/problems/merge-k-sorted-lists/',
- pattern: 'K-Way Merge',
+ pattern: ['Heap'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -926,7 +926,7 @@ const questions = [
name: 'Smallest Range Covering Elements from K Lists',
url:
'https://leetcode.com/problems/smallest-range-covering-elements-from-k-lists/',
- pattern: 'K-Way Merge',
+ pattern: ['Heap'],
difficulty: 'Hard',
premium: false,
companies: ['Google', 'Amazon', 'Snapchat'],
@@ -935,7 +935,7 @@ const questions = [
id: 77,
name: 'Meeting Rooms',
url: 'https://leetcode.com/problems/meeting-rooms',
- pattern: 'Merge Intervals',
+ pattern: ['Intervals'],
difficulty: 'Easy',
premium: true,
companies: ['Microsoft'],
@@ -944,7 +944,7 @@ const questions = [
id: 78,
name: 'Merge Intervals',
url: 'https://leetcode.com/problems/merge-intervals/',
- pattern: 'Merge Intervals',
+ pattern: ['Intervals'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -967,7 +967,7 @@ const questions = [
id: 79,
name: 'Interval List Intersections',
url: 'https://leetcode.com/problems/interval-list-intersections/',
- pattern: 'Merge Intervals',
+ pattern: ['Intervals'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -984,7 +984,7 @@ const questions = [
id: 80,
name: 'Non-overlapping Intervals',
url: 'https://leetcode.com/problems/non-overlapping-intervals/',
- pattern: 'Merge Intervals',
+ pattern: ['Intervals'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook'],
@@ -993,7 +993,7 @@ const questions = [
id: 81,
name: 'Meeting Rooms II',
url: 'https://leetcode.com/problems/meeting-rooms-ii/',
- pattern: 'Merge Intervals',
+ pattern: ['Heap', 'Intervals'],
difficulty: 'Medium',
premium: true,
companies: [
@@ -1012,7 +1012,7 @@ const questions = [
id: 82,
name: 'Task Scheduler',
url: 'https://leetcode.com/problems/task-scheduler/',
- pattern: 'Merge Intervals',
+ pattern: ['Greedy', 'Heap'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Microsoft', 'Amazon', 'Uber', 'Oracle'],
@@ -1022,7 +1022,7 @@ const questions = [
name: 'Minimum Number of Arrows to Burst Balloons',
url:
'https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/',
- pattern: 'Merge Intervals',
+ pattern: ['Greedy'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook'],
@@ -1031,7 +1031,7 @@ const questions = [
id: 84,
name: 'Insert Interval',
url: 'https://leetcode.com/problems/insert-interval/',
- pattern: 'Merge Intervals',
+ pattern: ['Intervals'],
difficulty: 'Hard',
premium: false,
companies: ['Google', 'Facebook', 'Twitter', 'Uber', 'LinkedIn', 'Amazon'],
@@ -1040,7 +1040,7 @@ const questions = [
id: 85,
name: 'Employee Free Time',
url: 'https://leetcode.com/problems/employee-free-time/',
- pattern: 'Merge Intervals',
+ pattern: ['Heap', 'Greedy'],
difficulty: 'Hard',
premium: true,
companies: [
@@ -1056,7 +1056,7 @@ const questions = [
id: 86,
name: 'Binary Search',
url: 'https://leetcode.com/problems/binary-search/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Easy',
premium: false,
companies: ['Microsoft'],
@@ -1066,7 +1066,7 @@ const questions = [
name: 'Find Smallest Letter Greater Than Target',
url:
'https://leetcode.com/problems/find-smallest-letter-greater-than-target/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Easy',
premium: false,
companies: ['LinkedIn'],
@@ -1075,7 +1075,7 @@ const questions = [
id: 88,
name: 'Peak Index in a Mountain Array',
url: 'https://leetcode.com/problems/peak-index-in-a-mountain-array/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Easy',
premium: false,
companies: ['Facebook', 'Amazon', 'Google', 'Uber'],
@@ -1084,7 +1084,7 @@ const questions = [
id: 89,
name: 'Find Minimum in Rotated Sorted Array',
url: 'https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Google', 'Goldman Sachs', 'Apple'],
@@ -1093,7 +1093,7 @@ const questions = [
id: 90,
name: 'Find Peak Element',
url: 'https://leetcode.com/problems/find-peak-element/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Google', 'Apple'],
@@ -1102,7 +1102,7 @@ const questions = [
id: 91,
name: 'Search in Rotated Sorted Array',
url: 'https://leetcode.com/problems/search-in-rotated-sorted-array/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1121,7 +1121,7 @@ const questions = [
id: 92,
name: 'Search in Rotated Sorted Array II',
url: 'https://leetcode.com/problems/search-in-rotated-sorted-array-ii/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon'],
@@ -1130,7 +1130,7 @@ const questions = [
id: 93,
name: 'Search a 2D Matrix',
url: 'https://leetcode.com/problems/search-a-2d-matrix/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Facebook', 'Uber', 'Apple'],
@@ -1139,7 +1139,7 @@ const questions = [
id: 94,
name: 'Search a 2D Matrix II',
url: 'https://leetcode.com/problems/search-a-2d-matrix-ii/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Microsoft'],
@@ -1148,7 +1148,7 @@ const questions = [
id: 95,
name: 'Find K Closest Elements',
url: 'https://leetcode.com/problems/find-k-closest-elements/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Bloomberg', 'Apple'],
@@ -1157,7 +1157,7 @@ const questions = [
id: 96,
name: 'Count of Range Sum',
url: 'https://leetcode.com/problems/count-of-range-sum/',
- pattern: 'Modified Binary Search',
+ pattern: ['Binary Search'],
difficulty: 'Hard',
premium: false,
companies: ['Google'],
@@ -1166,7 +1166,7 @@ const questions = [
id: 97,
name: 'Minimum Size Subarray Sum',
url: 'https://leetcode.com/problems/minimum-size-subarray-sum/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Medium',
premium: false,
companies: ['Goldman Sachs', 'Google', 'Amazon', 'Facebook', 'Oracle'],
@@ -1175,7 +1175,7 @@ const questions = [
id: 98,
name: 'Fruit Into Baskets',
url: 'https://leetcode.com/problems/fruit-into-baskets/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Medium',
premium: false,
companies: ['Google'],
@@ -1184,7 +1184,7 @@ const questions = [
id: 99,
name: 'Permutation in String',
url: 'https://leetcode.com/problems/permutation-in-string/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Microsoft', 'Google'],
@@ -1194,7 +1194,7 @@ const questions = [
name: 'Longest Repeating Character Replacement',
url:
'https://leetcode.com/problems/longest-repeating-character-replacement/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Medium',
premium: false,
companies: ['Google'],
@@ -1203,7 +1203,7 @@ const questions = [
id: 101,
name: 'Sliding Window Maximum',
url: 'https://leetcode.com/problems/sliding-window-maximum/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1222,7 +1222,7 @@ const questions = [
name: 'Longest Substring Without Repeating Characters',
url:
'https://leetcode.com/problems/longest-substring-without-repeating-characters/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1242,7 +1242,7 @@ const questions = [
name: 'Minimum Number of K Consecutive Bit Flips',
url:
'https://leetcode.com/problems/minimum-number-of-k-consecutive-bit-flips/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Hard',
premium: false,
companies: ['Amazon'],
@@ -1252,7 +1252,7 @@ const questions = [
name: 'Count Unique Characters of All Substrings of a Given String',
url:
'https://leetcode.com/problems/count-unique-characters-of-all-substrings-of-a-given-string/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Hard',
premium: false,
companies: ['Twitch'],
@@ -1261,7 +1261,7 @@ const questions = [
id: 105,
name: 'Minimum Window Substring',
url: 'https://leetcode.com/problems/minimum-window-substring/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1283,7 +1283,7 @@ const questions = [
name: 'Substring with Concatenation of All Words',
url:
'https://leetcode.com/problems/substring-with-concatenation-of-all-words/',
- pattern: 'Sliding Window',
+ pattern: ['Sliding Window'],
difficulty: 'Hard',
premium: false,
companies: ['Amazon', 'Microsoft', 'Google', 'Facebook'],
@@ -1292,7 +1292,7 @@ const questions = [
id: 107,
name: 'Kth Smallest Element in a BST',
url: 'https://leetcode.com/problems/kth-smallest-element-in-a-bst/',
- pattern: "Top 'K' Elements",
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Oracle', 'Facebook', 'Apple', 'Bloomberg'],
@@ -1301,7 +1301,7 @@ const questions = [
id: 108,
name: 'K Closest Points to Origin',
url: 'https://leetcode.com/problems/k-closest-points-to-origin/',
- pattern: "Top 'K' Elements",
+ pattern: ['Heap'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Asana', 'Oracle', 'Apple'],
@@ -1310,7 +1310,7 @@ const questions = [
id: 109,
name: 'Top K Frequent Elements',
url: 'https://leetcode.com/problems/top-k-frequent-elements/',
- pattern: "Top 'K' Elements",
+ pattern: ['Heap'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Oracle', 'Google', 'Yelp', 'Apple'],
@@ -1319,7 +1319,7 @@ const questions = [
id: 110,
name: 'Sort Characters By Frequency',
url: 'https://leetcode.com/problems/sort-characters-by-frequency/',
- pattern: "Top 'K' Elements",
+ pattern: ['Heap'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Bloomberg', 'Uber'],
@@ -1328,7 +1328,7 @@ const questions = [
id: 111,
name: 'Kth Largest Element in an Array',
url: 'https://leetcode.com/problems/kth-largest-element-in-an-array/',
- pattern: "Top 'K' Elements",
+ pattern: ['Heap'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1349,7 +1349,7 @@ const questions = [
id: 112,
name: 'Reorganize String',
url: 'https://leetcode.com/problems/reorganize-string/',
- pattern: "Top 'K' Elements",
+ pattern: ['Greedy', 'Heap'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1365,7 +1365,7 @@ const questions = [
id: 113,
name: 'Rearrange String k Distance Apart',
url: 'https://leetcode.com/problems/rearrange-string-k-distance-apart',
- pattern: "Top 'K' Elements",
+ pattern: ['Greedy', 'Heap'],
difficulty: 'Hard',
premium: true,
companies: ['Google'],
@@ -1374,7 +1374,7 @@ const questions = [
id: 114,
name: 'Course Schedule III',
url: 'https://leetcode.com/problems/course-schedule-iii/',
- pattern: "Top 'K' Elements",
+ pattern: ['Greedy', 'Heap'],
difficulty: 'Hard',
premium: false,
companies: ['Microsoft'],
@@ -1383,7 +1383,7 @@ const questions = [
id: 115,
name: 'Maximum Frequency Stack',
url: 'https://leetcode.com/problems/maximum-frequency-stack/',
- pattern: "Top 'K' Elements",
+ pattern: ['Bucket Sort', 'Heap'],
difficulty: 'Hard',
premium: false,
companies: ['Amazon', 'Apple'],
@@ -1392,7 +1392,7 @@ const questions = [
id: 116,
name: 'Course Schedule',
url: 'https://leetcode.com/problems/course-schedule/',
- pattern: 'Topological Sort',
+ pattern: ['BFS', 'DFS', 'Graph', 'Topological Sort'],
difficulty: 'Medium',
premium: false,
companies: ['Microsoft', 'Amazon', 'Facebook', 'Oracle', 'Google', 'Apple'],
@@ -1401,7 +1401,7 @@ const questions = [
id: 117,
name: 'Course Schedule II',
url: 'https://leetcode.com/problems/course-schedule-ii/',
- pattern: 'Topological Sort',
+ pattern: ['BFS', 'DFS', 'Graph', 'Topological Sort'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1420,7 +1420,7 @@ const questions = [
id: 118,
name: 'Minimum Height Trees',
url: 'https://leetcode.com/problems/minimum-height-trees/',
- pattern: 'Topological Sort',
+ pattern: ['BFS', 'Graph', 'Topological Sort'],
difficulty: 'Medium',
premium: false,
companies: ['Google', 'Amazon'],
@@ -1429,7 +1429,7 @@ const questions = [
id: 119,
name: 'Alien Dictionary',
url: 'https://leetcode.com/problems/alien-dictionary',
- pattern: 'Topological Sort',
+ pattern: ['Graph', 'Topological Sort'],
difficulty: 'Hard',
premium: true,
companies: [
@@ -1448,7 +1448,7 @@ const questions = [
id: 120,
name: 'Sequence Reconstruction',
url: 'https://leetcode.com/problems/sequence-reconstruction',
- pattern: 'Topological Sort',
+ pattern: ['Graph', 'Topological Sort'],
difficulty: 'Hard',
premium: true,
companies: ['Google'],
@@ -1457,7 +1457,7 @@ const questions = [
id: 121,
name: 'Binary Tree Level Order Traversal II',
url: 'https://leetcode.com/problems/binary-tree-level-order-traversal-ii/',
- pattern: 'BFS',
+ pattern: ['BFS'],
difficulty: 'Easy',
premium: false,
companies: ['Apple'],
@@ -1466,7 +1466,7 @@ const questions = [
id: 122,
name: 'Average of Levels in Binary Tree',
url: 'https://leetcode.com/problems/average-of-levels-in-binary-tree/',
- pattern: 'BFS',
+ pattern: ['BFS'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Facebook'],
@@ -1475,7 +1475,7 @@ const questions = [
id: 123,
name: 'Minimum Depth of Binary Tree',
url: 'https://leetcode.com/problems/minimum-depth-of-binary-tree/',
- pattern: 'BFS',
+ pattern: ['BFS', 'DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Facebook'],
@@ -1484,7 +1484,7 @@ const questions = [
id: 124,
name: 'Binary Tree Level Order Traversal',
url: 'https://leetcode.com/problems/binary-tree-level-order-traversal/',
- pattern: 'BFS',
+ pattern: ['BFS'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1501,7 +1501,7 @@ const questions = [
name: 'Binary Tree Zigzag Level Order Traversal',
url:
'https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/',
- pattern: 'BFS',
+ pattern: ['BFS'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1519,7 +1519,7 @@ const questions = [
name: 'Populating Next Right Pointers in Each Node',
url:
'https://leetcode.com/problems/populating-next-right-pointers-in-each-node/',
- pattern: 'BFS',
+ pattern: ['BFS'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1536,7 +1536,7 @@ const questions = [
name: 'Populating Next Right Pointers in Each Node II',
url:
'https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/',
- pattern: 'BFS',
+ pattern: ['BFS'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Bloomberg', 'Facebook', 'Google'],
@@ -1545,7 +1545,7 @@ const questions = [
id: 128,
name: 'Binary Tree Right Side View',
url: 'https://leetcode.com/problems/binary-tree-right-side-view/',
- pattern: 'BFS',
+ pattern: ['BFS', 'DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Microsoft', 'Bloomberg'],
@@ -1554,25 +1554,16 @@ const questions = [
id: 129,
name: 'All Nodes Distance K in Binary Tree',
url: 'https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/',
- pattern: 'BFS',
+ pattern: ['BFS', 'DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Facebook', 'Microsoft', 'Uber'],
},
- {
- id: 130,
- name: 'Boundary of Binary Tree',
- url: 'https://leetcode.com/problems/boundary-of-binary-tree',
- pattern: 'BFS',
- difficulty: 'Medium',
- premium: true,
- companies: ['Amazon', 'Microsoft', 'Apple', 'Oracle'],
- },
{
id: 131,
name: 'Same Tree',
url: 'https://leetcode.com/problems/same-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon'],
@@ -1581,7 +1572,7 @@ const questions = [
id: 132,
name: 'Path Sum',
url: 'https://leetcode.com/problems/path-sum/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Facebook', 'Bloomberg'],
@@ -1590,7 +1581,7 @@ const questions = [
id: 133,
name: 'Diameter of Binary Tree',
url: 'https://leetcode.com/problems/diameter-of-binary-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Facebook', 'Amazon', 'Microsoft', 'Oracle', 'Google', 'Adobe'],
@@ -1599,7 +1590,7 @@ const questions = [
id: 134,
name: 'Merge Two Binary Trees',
url: 'https://leetcode.com/problems/merge-two-binary-trees/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Adobe', 'Amazon'],
@@ -1608,7 +1599,7 @@ const questions = [
id: 135,
name: 'Maximum Depth of Binary Tree',
url: 'https://leetcode.com/problems/maximum-depth-of-binary-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Microsoft', 'Google', 'Goldman Sachs'],
@@ -1618,7 +1609,7 @@ const questions = [
name: 'Lowest Common Ancestor of a Binary Search Tree',
url:
'https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Facebook', 'Microsoft', 'LinkedIn'],
@@ -1627,7 +1618,7 @@ const questions = [
id: 137,
name: 'Subtree of Another Tree',
url: 'https://leetcode.com/problems/subtree-of-another-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon'],
@@ -1636,7 +1627,7 @@ const questions = [
id: 138,
name: 'Invert Binary Tree',
url: 'https://leetcode.com/problems/invert-binary-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Easy',
premium: false,
companies: ['Google', 'Microsoft', 'Amazon'],
@@ -1645,7 +1636,7 @@ const questions = [
id: 139,
name: 'Path Sum II',
url: 'https://leetcode.com/problems/path-sum-ii/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Quora'],
@@ -1654,7 +1645,7 @@ const questions = [
id: 140,
name: 'Path Sum III',
url: 'https://leetcode.com/problems/path-sum-iii/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft'],
@@ -1664,7 +1655,7 @@ const questions = [
name: 'Lowest Common Ancestor of a Binary Tree',
url:
'https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1681,7 +1672,7 @@ const questions = [
id: 142,
name: 'Maximum Binary Tree',
url: 'https://leetcode.com/problems/maximum-binary-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Google'],
@@ -1690,7 +1681,7 @@ const questions = [
id: 143,
name: 'Maximum Width of Binary Tree',
url: 'https://leetcode.com/problems/maximum-width-of-binary-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Facebook', 'Amazon', 'Google', 'Microsoft'],
@@ -1700,7 +1691,7 @@ const questions = [
name: 'Construct Binary Tree from Preorder and Inorder Traversal',
url:
'https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Google', 'Facebook', 'Bloomberg'],
@@ -1709,7 +1700,7 @@ const questions = [
id: 145,
name: 'Validate Binary Search Tree',
url: 'https://leetcode.com/problems/validate-binary-search-tree/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1729,7 +1720,7 @@ const questions = [
id: 146,
name: 'Kth Smallest Element in a BST',
url: 'https://leetcode.com/problems/kth-smallest-element-in-a-bst/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Oracle', 'Facebook', 'Apple', 'Bloomberg'],
@@ -1738,7 +1729,7 @@ const questions = [
id: 147,
name: 'Implement Trie (Prefix Tree)',
url: 'https://leetcode.com/problems/implement-trie-prefix-tree/',
- pattern: 'Trie',
+ pattern: ['Design', 'Trie'],
difficulty: 'Medium',
premium: false,
companies: ['Amazon', 'Microsoft', 'Google', 'Facebook'],
@@ -1747,7 +1738,7 @@ const questions = [
id: 148,
name: 'Binary Tree Maximum Path Sum',
url: 'https://leetcode.com/problems/binary-tree-maximum-path-sum/',
- pattern: 'DFS',
+ pattern: ['DFS'],
difficulty: 'Hard',
premium: false,
companies: ['Facebook', 'Microsoft', 'Amazon', 'Google', 'Uber', 'Apple'],
@@ -1756,7 +1747,7 @@ const questions = [
id: 149,
name: 'Serialize and Deserialize Binary Tree',
url: 'https://leetcode.com/problems/serialize-and-deserialize-binary-tree/',
- pattern: 'DFS',
+ pattern: ['Design'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1775,7 +1766,7 @@ const questions = [
id: 150,
name: 'Word Search II',
url: 'https://leetcode.com/problems/word-search-ii/',
- pattern: 'Trie',
+ pattern: ['DFS', 'Trie'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1792,7 +1783,7 @@ const questions = [
id: 151,
name: 'Find Median from Data Stream',
url: 'https://leetcode.com/problems/find-median-from-data-stream/',
- pattern: 'Two Heaps',
+ pattern: ['Heap'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1809,7 +1800,7 @@ const questions = [
id: 152,
name: 'Sliding Window Median',
url: 'https://leetcode.com/problems/sliding-window-median/',
- pattern: 'Two Heaps',
+ pattern: ['Heap'],
difficulty: 'Hard',
premium: false,
companies: ['Amazon', 'Facebook', 'Google'],
@@ -1818,7 +1809,7 @@ const questions = [
id: 153,
name: 'Two Sum',
url: 'https://leetcode.com/problems/two-sum/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -1837,7 +1828,7 @@ const questions = [
id: 154,
name: 'Remove Duplicates from Sorted List',
url: 'https://leetcode.com/problems/remove-duplicates-from-sorted-list/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Easy',
premium: false,
companies: ['Amazon', 'Apple', 'Microsoft'],
@@ -1846,7 +1837,7 @@ const questions = [
id: 155,
name: 'Squares of a Sorted Array',
url: 'https://leetcode.com/problems/squares-of-a-sorted-array/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Easy',
premium: false,
companies: [
@@ -1865,7 +1856,7 @@ const questions = [
id: 156,
name: 'Backspace String Compare',
url: 'https://leetcode.com/problems/backspace-string-compare',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Easy',
premium: false,
companies: ['Google', 'Facebook', 'Amazon', 'Microsoft', 'Oracle'],
@@ -1874,7 +1865,7 @@ const questions = [
id: 157,
name: '3 Sum',
url: 'https://leetcode.com/problems/3sum/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1893,7 +1884,7 @@ const questions = [
id: 158,
name: '3 Sum Closest',
url: 'https://leetcode.com/problems/3sum-closest/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Medium',
premium: false,
companies: ['Google', 'Facebook', 'Amazon', 'Apple', 'Microsoft'],
@@ -1902,7 +1893,7 @@ const questions = [
id: 159,
name: 'Subarrays with Product Less than K',
url: 'https://leetcode.com/problems/subarray-product-less-than-k/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Medium',
premium: false,
companies: ['Akuna Capital', 'Google'],
@@ -1911,7 +1902,7 @@ const questions = [
id: 160,
name: 'Sort Colours',
url: 'https://leetcode.com/problems/sort-colors/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Medium',
premium: false,
companies: [
@@ -1928,7 +1919,7 @@ const questions = [
id: 161,
name: 'Minimum Window Substring',
url: 'https://leetcode.com/problems/minimum-window-substring/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1948,7 +1939,7 @@ const questions = [
id: 162,
name: 'Trapping Rain Water',
url: 'https://leetcode.com/problems/trapping-rain-water/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1969,7 +1960,7 @@ const questions = [
id: 163,
name: 'Container With Most Water',
url: 'https://leetcode.com/problems/container-with-most-water/',
- pattern: 'Two Pointers',
+ pattern: ['Two Pointers'],
difficulty: 'Hard',
premium: false,
companies: [
@@ -1987,7 +1978,7 @@ const questions = [
id: 164,
name: 'Longest Word in Dictionary',
url: 'https://leetcode.com/problems/longest-word-in-dictionary/',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Easy',
premium: false,
companies: ['Goldman Sachs', 'Google'],
@@ -1996,7 +1987,7 @@ const questions = [
id: 165,
name: 'Index Pairs of a String',
url: 'https://leetcode.com/problems/index-pairs-of-a-string/',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Easy',
premium: true,
companies: ['Amazon'],
@@ -2005,7 +1996,7 @@ const questions = [
id: 166,
name: 'Maximum XOR of Two Numbers in an Array',
url: 'https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Medium',
premium: false,
companies: ['Google'],
@@ -2014,7 +2005,7 @@ const questions = [
id: 167,
name: 'Concatenated Words',
url: 'https://leetcode.com/problems/concatenated-words/',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Hard',
premium: false,
companies: ['Amazon', 'Apple', 'Facebook'],
@@ -2023,7 +2014,7 @@ const questions = [
id: 168,
name: 'Prefix and Suffix Search',
url: 'https://leetcode.com/problems/prefix-and-suffix-search/',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Hard',
premium: false,
companies: ['Facebook', 'Google', 'Uber'],
@@ -2032,7 +2023,7 @@ const questions = [
id: 169,
name: 'Palindrome Pairs',
url: 'https://leetcode.com/problems/palindrome-pairs/',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Hard',
premium: false,
companies: ['Airbnb', 'Amazon', 'Facebook', 'Google', 'Square'],
@@ -2041,7 +2032,7 @@ const questions = [
id: 170,
name: 'Design Search Autocomplete System',
url: 'https://leetcode.com/problems/design-search-autocomplete-system/',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Hard',
premium: true,
companies: ['Amazon', 'Google', 'Lyft', 'Microsoft', 'Uber'],
@@ -2050,11 +2041,20 @@ const questions = [
id: 171,
name: 'Word Squares',
url: 'https://leetcode.com/problems/word-squares/',
- pattern: 'Trie',
+ pattern: ['Trie'],
difficulty: 'Hard',
premium: true,
companies: ['Oracle'],
},
+ {
+ id: 172,
+ name: 'Sort Items by Groups Respecting Dependencies',
+ url: 'https://leetcode.com/problems/sort-items-by-groups-respecting-dependencies/',
+ pattern: ['DFS', 'Graph', 'Topological Sort'],
+ difficulty: 'Hard',
+ premium: false,
+ companies: ['Google'],
+ },
];
const sortBy = { Easy: 0, Medium: 1, Hard: 2 };
diff --git a/src/icons/Amazon.png b/src/icons/Amazon.png
index f9491ee8..bb3d43bc 100644
Binary files a/src/icons/Amazon.png and b/src/icons/Amazon.png differ