Skip to content

Instantly share code, notes, and snippets.

View lysenko-sergey-developer's full-sized avatar
💯

Sergey Lysenko lysenko-sergey-developer

💯
View GitHub Profile
@lysenko-sergey-developer
lysenko-sergey-developer / person.ts
Created July 18, 2024 07:30
Example of using Incapsulation + Abstraction + Interface Contract
interface BasePerson {
firstName: string;
lastName: string;
password: string;
apiToken: string;
}
interface ShowProfile {
showProfile(): string;
}
@lysenko-sergey-developer
lysenko-sergey-developer / ctags.vim
Created April 22, 2021 12:07
Ctags setup for nvim
""""""""""""""""""""""""""""""
" => Vim Tags
""""""""""""""""""""""""""""""
let g:gutentags_add_default_project_roots = 0
let g:gutentags_project_root = ['package.json', '.git']
let g:gutentags_cache_dir = expand('~/.config/nvim/tags')
command! -nargs=0 GutentagsClearCache call system('rm ' . g:gutentags_cache_dir . '/*')
let g:gutentags_generate_on_new = 1
let g:gutentags_generate_on_missing = 1
let g:gutentags_generate_on_write = 1
/**
Cartesian product
for example for input: [['x', 'y'], [1, 2 ]]
we will have output: ['x1', 'x2', 'y1', 'y2']
for example for input: [['x', 'y'], [1, 2, 3]]
we will have output: ['x1', 'x2', 'x3', 'y1', 'y2', 'y3']
1 1 -> 1
1 2 -> 2
var maxSubArray = function(nums) {
if (nums.length === 1) return nums[0];
const reserveResult = Math.max(...nums);
for (let i = 0; i < nums.length; i++) {
if (i && (nums[i] > 0 && nums[i - 1] > 0) || (nums[i - 1] + nums[i] > 0 && nums[i] < nums[i - 1] + nums[i])) {
nums[i] = nums[i - 1] + nums[i];
} else if (nums[i] < 0) {
nums[i] = 0;
}
function maxSubArray(nums) {
// time - O(n^3), memory - O(1)
let max = nums[0];
for (let i = 0; i <= nums.length; i++) {
for(let j = 0; j <= i; j++) {
if (i === j) continue;
const newMax = nums.slice(j, i).reduce((a, b) => a += b, 0);
max = max > newMax ? max : newMax;
}
}
function estimatePi(n) {
let numPointCircle = 0;
let numPointTotal = 0;
for (let i = 0; i < n; i++) {
const x = Math.round(Math.random())
const y = Math.round(Math.random())
let distance = x ** 2 + y ** 2;
if (distance <= 1) {
version: 0.2
phases:
install:
runtime-versions:
docker: 18
pre_build:
commands:
- echo Starting aws code-build phase...
- echo Logging in to Amazon ECR...
@lysenko-sergey-developer
lysenko-sergey-developer / webpack.config.js
Created July 25, 2019 09:38
webpack configs(+postcss) without postcss.configs.js file
const path = require('path');
module.exports = async ({ config, mode }) => {
config.module.rules.push({
test: /\.scss$/,
use: ['style-loader', 'css-loader', {
loader: 'postcss-loader', options: {
ident: 'postcss',
plugins: (loader) => [
const path = require('path');
module.exports = async ({ config, modpose }) => {
config.module.rules.push({
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'postcss-loader'],
include: path.resolve(__dirname, '../'),
});
const fs = require('fs')
const fsPromises = require('fs').promises
const path = require('path')
const promisifyStat = (path) => new Promise((resolve, reject) => {
fs.stat(path, (err, stat) => {
if (err) reject(err)
resolve(stat)
})
})