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 ...
随机推荐
- java学习之旅(day.08)
类与对象的关系 类是一种抽象的数据类型,是对某一类事物的描述,但并不代表具体的事物,如动物与狗的关系,类描述的是某一类事物具备的共同特点 对象是抽象概念的具体实例 能够展现出功能,体现出特点的是具体的 ...
- 解决input中输入中文过程中会触发input事件的问题
问题描述: 监听文本输入框的input事件,在拼写汉字时会触发input事件,如下图: 需求: 选词完成后触发input事件,只触发一次. 解决办法: 通过查阅资料得知在输入中文(包括语音识别时)会先 ...
- Wpf Bitmap(Image)Base64,Url,文件Path,Stream转BitmapSource(ImageSource),无需外部dll
直接上代码 using System; using System.Drawing; using System.IO; using System.Windows.Forms; using System. ...
- 支持表格识别,PaddleOCRSharp最新发布
PaddleOCRSharp 2.3.0已经发布nuget包. 项目开源地址:https://gitee.com/raoyutian/paddle-ocrsharp 2.3.0更新内容: 1.增加表格 ...
- Java遍历Map集合的方法
Java中遍历Map集合的常用方式主要有以下几种: 1.使用keySet()方法遍历 遍历Map的key集合,然后通过key获取value. Map<String, Integer> ma ...
- 【论文笔记】轻量级网络MobileNet
[深度学习]总目录 MobileNet V1:<MobileNets: Efficient Convolutional Neural Networks for MobileVision Appl ...
- 算法金 | 读者问了个关于深度学习卷积神经网络(CNN)核心概念的问题
大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 读者问了个关于卷积神经网络核心概念的问题,如下, [问]神经元.权重.激活函数.参数 ...
- 此计算机上不存在虚拟机管理服务(VMMS)。请确保已启用“Hyper-V 服务”功能。
此计算机上不存在虚拟机管理服务(VMMS).请确保已启用"Hyper-V 服务"功能. 解决方法: 在主板BIOS 里开启VT. Intel Virtualization Tech ...
- C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704
C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704 环境说明: .NET Framework 4.6 的控制台程 ...
- OpenTelemetry Logging 思维导图,收藏
Log 是最常用.最自然的监控数据类型之一,具有以下的优点: 日志的内容比指标更加丰富,可以提供更多的细节信息,帮助开发人员和运维人员更好地理解应用程序的运行状况,通过日志几乎可以重现.还原系统的完整 ...