Giter Club home page Giter Club logo

awesome-coding-js's People

Contributors

conardli avatar fireairforce avatar nmsn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-coding-js's Issues

call的代码实现写的有漏洞,应该改为如下代码

call的代码实现写的有漏洞,应该改为如下代码
function fn1() {
console.log(this, 1);
}
Function.prototype.myCall = function (context = window, ...args) {
if (this === Function.prototype) {
return undefined; // 用于防止 Function.prototype.myCall() 直接调用
}
context = Object(context);
const fn = Symbol();
context[fn] = this;
const result = contextfn;
delete context[fn];
return result;
}
fn1.myCall('hello')

快速排序第二种写法代码出错

快速排序里面的第二种写法代码里面有一处有错误。
第二行这里的
if (end - start < 2) { return; }
if里面应该是“end - start < 1”,不然的话当刚好有两个元素的话就无法去判断排序了。
比如这个数组“[23, 11, 5, 65, 7, 33, 2, 26]”,如果按照你的写法的话会输出“[ 2, 7, 5, 11, 23, 26, 33, 65 ]”,如果改成我那样的话就会正确输出“[ 2, 5, 7, 11, 23, 26, 33, 65 ]”

字符串的排列【其他解法】

function Permutation(str) {
    const queue = str.split('');
    queue.sort();
    return PermutationCore(queue);
}


function PermutationCore(queue) {
    let result = [];
    if (queue.length === 1) {
        return queue;
    }
    queue.forEach((item, index) => {
        const newArr = queue.slice(0);
        newArr.splice(index, 1);
        const newArray = PermutationCore(newArr).map(i => (item + i));
        result = result.concat(newArray);
    });

    return result;
}


console.log(Permutation('abc')); // ["abc", "acb", "bac", "bca", "cab", "cba"]

浅拷贝和深拷贝

  • 浅拷贝: 拷贝的是对象的指针,修改内容互相影响
  • 深拷贝: 整个对象拷贝到另一个内存中,修改内容互不影响
arr.slice();
arr.concat();

文中提到这两个方法是浅拷贝,应该是深拷贝

let arr1 = [1,2,3,4];
let arr2 = arr1.slice(0);
let arr3 = arr1.concat();
arr2[1] =6;
arr3[1] = 6;
console.log(arr1);   //  [1,2,3,4]
console.log(arr2);  //  [1,6,3,4]
console.log(arr3);  // [1,6,3,4]

for in的循环顺序

我感觉js并不是一个有序的数据结构,而且你用for in循环并不能保证‘第一次出现’这个条件

中序遍历,题目,代码,运行结果,发现不对

var inorderTraversal = function (root, array = []) {
if (root) {
inorderTraversal(root.left, array);
array.push(root.val);
inorderTraversal(root.right, array);
}
return array;
};
console.log(inorderTraversal([1,null,2,3]))
打印[undefined]

问题:二叉搜索树的第k个节点

递归算法:好像写错了,解法思路是对的,但是运行就报错,
运行环境:vscode集成leetcode插件

/*
 * @lc app=leetcode.cn id=230 lang=javascript
 *
 * [230] 二叉搜索树中第K小的元素
 */
/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} k
 * @return {number}
 */
function kthSmallest(root, k) {
    const arr = [];
    loopThrough(root, arr);
    if (k > 0 && k <= arr.length) {
      return arr[k - 1];
    }
    return null;
  }

  function loopThrough(node, arr) {
    if (node) {
      loopThrough(node.left, arr);
      arr.push(node);
      loopThrough(node.right, arr);
    }
  }

✘ Wrong Answer
  ✘ 0/91 cases passed (N/A)
  ✘ testcase: '[3,1,4,null,2]\n1'
  ✘ answer: NaN
  ✘ expected_answer: 1
  ✘ stdout:

二叉树中和为某一值的路径算法问题

function FindPathCore(node, expectNumber, stack, sum, result) {
stack.push(node.val);
sum += node.val;
if (!node.left && !node.right && sum === expectNumber) {
result.push(stack.slice(0));
}
if (node.left) {
FindPathCore(node.left, expectNumber, stack, sum, result);
}
if (node.right) {
FindPathCore(node.right, expectNumber, stack, sum, result);
}
stack.pop();
}

当stack[stack.length-1]存在并且没访问过时,stack.pop()会将右子树切断,造成结果项缺失。

字符流中第一个不重复的字符

function FirstAppearingOnce() {
let minIndex = 256;
let strIndex = 0;
for (let i = 0; i < 256; i++) {
if (container[i] >= 0 && container[i] < minIndex) {
minIndex = container[i];
strIndex = i;
}
}
return minIndex === 256 ? '#' : String.fromCharCode(strIndex);
}

container[i] >= 0时,container[i]对应字符在字符串中的下标,所以实际使用时 minIndex = [传入的字符串长度或者无穷大]。
哈哈哈,当然这里不涉及具体问题,思路正确。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.