首页 > 其他分享 >leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]

leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]

时间:2023-01-10 19:46:08浏览次数:51  
标签:function 448 205 -- 链表 length let var return

目录

168. Excel表列名称

var convertToTitle = function(columnNumber) {
    let str = ''
    let n = columnNumber
    while (n) {
        let y = n % 26 // 从后往前取余
        n = n / 26 | 0 // 除以26并且向下取整
        y || n-- // 余数为0 ,n--
        str = String.fromCharCode(64 + (y || 26)) + str
    }
    return str
};

171. Excel 表列序号

var titleToNumber = function(columnTitle) {
    let result = 0;
    let s = columnTitle;
    for (let i = 0, len = s.length; i < len; i++) {
        result += (s[i].charCodeAt() - 64) * 26 ** (len - i - 1);
    }
    return result;
};

190. 颠倒二进制位

var reverseBits = function(n) {
    return parseInt((n).toString(2).padStart(32, '0').split('').reverse().join(''), 2)
};

205. 同构字符串

var isIsomorphic = function(s, t) {
    let sMap = {}
    let tMap = {}
    for (let i = 0; i < s.length; i++) {
        if (sMap[s[i]] !== tMap[t[i]]) return false
        sMap[s[i]] = i
        tMap[t[i]] = i
    }
    return true
};

228. 汇总区间

var summaryRanges = function(nums) {
    if (nums.length == 0) return []

    let left = 0,
        right = 0
    let res = []
    for (let i = 0; i < nums.length; i++) {
        if (nums[i] + 1 === nums[i + 1]) {
            right++
        } else {
            res.push(left === right ? `${nums[i]}` : `${nums[left]} -> ${nums[right]}`)
            left = i + 1
            right = i + 1
        }
    }
    return res
};

448. 找到所有数组中消失的数字

var findDisappearedNumbers = function(nums) {
    var res = []
    for (let i = 1; i <= nums.length; i++) {
        if (nums.indexOf(i) === -1) {
            res.push(i)
        }
    }
    return res
};

461. 汉明距离

var hammingDistance = function(x, y) {
    var binX = x.toString(2)
    var binY = y.toString(2)
    var len = binX.length > binY.length ? binX.length : binY.length
    binX = binX.padStart(len, '0')
    binY = binY.padStart(len, '0')
    var disCount = 0
    for (let i = 0; i < len; i++) {
        if (binX[i] !== binY[i]) {
            disCount++
        }

    }
    return disCount
};

876. 链表的中间结点

var middleNode = function(head) {
    let slow = head
    let fast = head
    while (fast !== null && fast.next !== null) {
        slow = slow.next
        fast = fast.next.next
    }
    return slow
};

836. 矩形重叠

var isRectangleOverlap = function(rec1, rec2) {
    if (rec1[0] >= rec2[2] || rec1[2] <= rec2[0] || rec1[1] >= rec2[3] || rec1[3] <= rec2[1]) {
        return false
    }
    return true

};

844. 比较含退格的字符串

var backspaceCompare = function(s, t) {
    let i = s.length - 1
    let j = t.length - 1
    let backSpaceS = 0
    let backSpaceT = 0

    while (i >= 0 || j >= 0) {
        while (i >= 0) {
            if (s[i] == '#') {
                backSpaceS++
                i--
            } else if (backSpaceS > 0) {
                backSpaceS--
                i--
            } else {
                break
            }
        }
        while (j >= 0) {
            if (t[j] == '#') {
                backSpaceT++
                j--
            } else if (backSpaceT > 0) {
                backSpaceT--
                j--
            } else {
                break
            }
        }
        if (s[i] !== t[j]) {
            return false
        }
        i--
        j--
    }
    return true
};

标签:function,448,205,--,链表,length,let,var,return
From: https://www.cnblogs.com/echoyya/p/17041225.html

相关文章

  • 单链表
    图示:代码:1importlombok.Data;2importjava.util.Stack;34publicclassSingleLinkedListTest{5publicstaticvoidmain(String[]args){......
  • 链表反转
    #include<iostream>structListNode{intdata=0;ListNode*next=NULL;};//反转链表//题意:反转一个单链表。//示例:输入:1->2->3->4->5->NULL输出:......
  • SPOJ SP32058 R6PL - Harbinger vs Sciencepal
    链接难度:\(\texttt{17/21}\)\(T\)组数据。有\(n\)组,每组有\(2\)个数\(x,y\),问把每组的一个数分配到一组另一个数分配到另一组两组数字和差的绝对值最小是多少。......
  • Redis-数据结构与对象-链表
    链表Redis使用的C没有内置链表结构,Redis自己实现了链表双端:链表节点带有prev和next指针,获取某个节点的前置节点和后置节点的复杂度都是O(1)。无环:表头节点的prev指针和表......
  • C++实现双向链表的相关操作代码
    #include<iostream>#include<cstdlib>usingnamespacestd;#defineOK1#defineERROR0#defineMAXSIZE100typedefintElemtype;typedefintStatus;typedefstructDuL......
  • 【优先队列】LeetCode 23. 合并K个升序链表
    题目链接23.合并K个升序链表思路把全部结点放入优先队列中,然后再依次组成新链表代码classSolution{publicListNodemergeKLists(ListNode[]lists){......
  • python实现单向循环链表与双向链表
    目录单向循环链表操作实现双向链表操作实现单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作is_empty(......
  • C 单向链表(尾插法)
    初学数据结构,用C实现了一个简单的单向链表,用以存储和遍历查询学生信息,只有构造链表和遍历查询链表的功能,主要为了展示单向链表尾插法的实现,原创代码,不足之处还请多评论指正......
  • Python实现单项链表
    单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指......
  • 143. 重排链表
    问题链接https://leetcode.cn/problems/reorder-list/description/解题思路这题其实用list+双指针模拟。很简单。但我们要练习的是递归。这题我本来是想用递归的方......