leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]
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
};
leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]的更多相关文章
- redis底层数据结构--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表
1.动态字符串 redis中使用c语言的字符床存储字面量,默认字符串存储采用自己构建的简单动态字符串SDS(symple dynamic string) redis包含字符串的键值对都是用SDS实现的 ...
- 【redis】redis底层数据结构原理--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表等
redis有五种数据类型string.list.hash.set.zset(字符串.哈希.列表.集合.有序集合)并且自实现了简单动态字符串.双端链表.字典.压缩列表.整数集合.跳跃表等数据结构.red ...
- LeetCode 简单 -旋转字符串(796)
给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能变成B ...
- redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表
文中内容摘自<redis设计与实现> 简单动态字符串 1. Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态 ...
- [Java]字符串数组 与 字符串链表 之间的相互转化
代码: package com.hy; import java.util.Arrays; import java.util.Collections; import java.util.List; pu ...
- 【leetcode 206】 反转链表(简单)
链表 概念: 区别于数组,链表中的元素不是存储在内存中连续的一片区域,链表中的数据存储在每一个称之为「结点」复合区域里,在每一个结点除了存储数据以外,还保存了到下一个结点的指针(Pointer). 由 ...
- Redis 数据结构-简单动态字符串
Redis 数据结构-简单动态字符串 无边落木萧萧下,不尽长江滚滚来. 1.简介 Redis 之所以快主要得益于它的数据结构.操作内存数据库.单线程和多路 I/O 复用模型,进一步窥探下它常见的五种基 ...
- 图解Redis之数据结构篇——简单动态字符串SDS
图解Redis之数据结构篇--简单动态字符串SDS 前言 相信用过Redis的人都知道,Redis提供了一个逻辑上的对象系统构建了一个键值对数据库以供客户端用户使用.这个对象系统包括字符串对象 ...
- Redis底层探秘(一):简单动态字符串(SDS)
redis是我们使用非常多的一种缓存技术,他的性能极高,读的速度是110000次/s,写的速度是81000次/s.这么高的性能背后,到底是怎么样的实现在支撑,这个系列的文章,我们一起去看看. redi ...
- LeetCode 61:旋转链表 Rotate List
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. Given a linked list, rotate the list to the right by k pla ...
随机推荐
- PageOffice6 版本常用事件
1.AfterDocumentOpened 事件 打开文件后自动触发的事件是 AfterDocumentOpened 事件,它通常用于实现文件打开后自动执行某些业务逻辑,比如将默认控件全屏.禁止保存. ...
- 各大插件市场智能助手评分榜出炉!百度Comate稳居第一
近日,在VSCode.Jetbrains等各大插件市场智能助手评分榜中,百度Comate分别以4.5和4.4位列第一,通义灵码位居第二.第三,CodeGeeX.iFlyCode.aiXcoder.Gi ...
- centos 7网卡配置文件详解(ifcfg-ens33)
centos 7网卡配置文件详解(ifcfg-ens33) [root@xuegod63 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE ...
- 彻底搞懂JavaScript原型和原型链
基于原型编程 在面向对象的编程语言中,类和对象的关系是铸模和铸件的关系,对象总是从类创建而来,比如Java中,必须先创建类再基于类实例化对象. 而在基于原型编程的思想中,类并不是必须的,对象都是通过克 ...
- rabbitmq添加延时通道时报错
rabbitmq添加延时通道时报错 'x-delayed-type' must be an existing exchange type 解决方案: 我实际用的是x-delayed-type:topi ...
- c# - 如何在圆角 WPF 窗体中创建圆角矩形?
我正在 WPF 中创建一个应用程序,我想要圆角.收到.现在窗体是无边框的,我正在尝试创建一个圆角矩形并将其放在顶部,使其看起来像 Windows 应用程序的顶部栏. 我做不到. 这是我的代码: < ...
- Azkaban快速入门
先说一些废话 因为之前自己工作中有用过Azkaban作为自动化任务调度工具,所以想参考自己之前的使用经验,总结一下关于Azkaban的使用,方便大家使用Azkaban快速实现企业级自动化任务 如何选择 ...
- vscode git bash终端配置:“”message": "此项已弃用,配置默认 shell 的新推荐方法是在 `#terminal.integrated.profiles.windows#
当VSCode升级至1.57.1(2021.6.17)时,会出现警告提示:""message": "此项已弃用,配置默认 shell 的新推荐方法是在 `#te ...
- react 过渡动画组件
在项目中可能会有一些动画效果展示或是页面切换效果,css动画的方式,比较局限,涉及到一些js动画的时候没法处理了.react-transition-group是react的第三方模块,借住这个模块可以 ...
- react减少组件渲染
当this.setState()修改了state中的数据后,当前组件将重新渲染,同时也会重新渲染子组件,但只会渲染当前组件子树(当前组件以其所有子组件) shouldComponentUpdate 当 ...