leetcode简单(数组,字符串,链表):[1, 9, 13, 14, 20, 21, 26, 27, 35, 58]
1. 两数之和
var twoSum = function(nums, target) {
// 第一种
// var len = nums.length
// for (var i = 0; i < len; i++) {
// for (var j = i + 1; j < len; j++) {
// if (target - nums[i] == nums[j]) {
// return [i, j]
// }
// }
// }
// 第二种
var map = new Map()
for (let i = 0; i < nums.length; i++) {
var comNum = target - nums[i]
if (map.has(comNum)) {
return [map.get(comNum), i]
} else {
map.set(nums[i], i)
}
}
return []
};
9. 回文数
var isPalindrome = function(x) {
var str = '' + x
var left = 0
var right = str.length - 1
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false
}
left++
right--
}
return true
};
13. 罗马数字转整数
var romanToInt = function(s) {
var roman = ['I', 'V', 'X', 'L', 'C', 'D', 'M', 'IV', 'IX', 'XL', 'XC', 'CD', 'CM']
var num = [1, 5, 10, 50, 100, 500, 1000, 4, 9, 40, 90, 400, 900]
var res = 0
for (var i = 0; i < s.length; i++) {
var t = s[i] + s[i + 1]
if (roman.indexOf(t) >= 0) {
res += num[roman.indexOf(t)]
i++
} else {
res += num[roman.indexOf(s[i])]
}
}
return res
};
14. 最长公共前缀
var longestCommonPrefix = function(strs) {
var res = ''
if (strs.length == 0) {
return res
}
for (var i = 0; i < strs[0].length; i++) {
for (var j = 0; j < strs.length; j++) {
if (strs[0][i] != '' && strs[0][i] != strs[j][i]) {
return res
}
}
res += strs[0][i]
}
return res
};
20. 有效的括号
var isValid = function(s) {
if (s.length % 2 !== 0) return false
let tmp = ['(', '[', '{', ')', ']', '}'] // 012345
let result = []
for (let i = 0; i < s.length; i++) {
if (tmp.indexOf(s[i]) <= 2) {
result.push(s[i])
} else {
let last = result.pop()
if (tmp.indexOf(last) + 3 != tmp.indexOf(s[i])) {
return false
}
}
}
if (result.length > 0) return false
return true
};
21. 合并两个有序链表
var mergeTwoLists = function(l1, l2) {
let prevhead = new ListNode(-1)
let prev = prevhead
while (l1 !== null && l2 !== null) {
if (l1.val <= l2.val) {
prev.next = l1
l1 = l1.next
} else {
prev.next = l2
l2 = l2.next
}
prev = prev.next
}
prev.next = l1 === null ? l2 : l1
return prevhead.next
};
26. 删除有序数组中的重复项
var removeDuplicates = function(nums) {
for (var i = 0; i < nums.length; i++) {
if (nums[i] == nums[i + 1]) {
nums.splice(i, 1);
i--
}
}
return nums.length
};
27. 移除元素
var removeElement = function(nums, val) {
for (let i = 0; i < nums.length; i++) {
if (nums[i] == val) {
nums.splice(i, 1);
i--;
}
}
return nums.length
};
35. 搜索插入位置
var searchInsert = function(nums, target) {
var min = 0;
var max = nums.length - 1;
if (target < nums[min]) return min;
if (target > nums[max]) return max + 1;
while (min <= max) {
var mid = parseInt((min + max) / 2)
if (target == nums[mid]) {
return mid
} else if (target > nums[mid]) {
min = mid + 1
} else {
max = mid - 1
}
}
return min
};
58. 最后一个单词的长度
var lengthOfLastWord = function(s) {
s = s.trim().replace(/\s+/g, ' ')
var arr = s.split(' ')
return arr[arr.length - 1].length
};
leetcode简单(数组,字符串,链表):[1, 9, 13, 14, 20, 21, 26, 27, 35, 58]的更多相关文章
- 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,简单动态 ...
- 复杂的字符串数组解析:{"setting":"简单:10:5,一般:5:10,困难:2:20"},使用split多次截取
"[0,{"id":563,"name":"测试题1","dscr":null,"picId&quo ...
- [Java]字符串数组 与 字符串链表 之间的相互转化
代码: package com.hy; import java.util.Arrays; import java.util.Collections; import java.util.List; pu ...
- 【leetcode 206】 反转链表(简单)
链表 概念: 区别于数组,链表中的元素不是存储在内存中连续的一片区域,链表中的数据存储在每一个称之为「结点」复合区域里,在每一个结点除了存储数据以外,还保存了到下一个结点的指针(Pointer). 由 ...
- C#LeetCode刷题-字符串
字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) ...
- Collection集合重难点梳理,增强for注意事项和三种遍历的应用场景,栈和队列特点,数组和链表特点,ArrayList源码解析, LinkedList-源码解析
重难点梳理 使用到的新单词: 1.collection[kəˈlekʃn] 聚集 2.empty[ˈempti] 空的 3.clear[klɪə(r)] 清除 4.iterator 迭代器 学习目标: ...
- 11-C语言指针&一维数组&字符串
一.用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 1 // 定义一个int类型的数组 2 int a[4] = {1, 2, 3, 4}; 3 4 int i; 5 for (i = ...
随机推荐
- 智能便捷_AIRIOT智慧充电桩管理解决方案
现如今随着对可持续交通的需求不断增加,电动车市场正在迅速扩大,建设更多更智能的充电桩,并通过管理平台提高充电设施的可用性和效率成为一项重要任务.传统的充电桩管理平台在对充电设施进行管理过程中,存在如下 ...
- python的requests模块详解
原文链接:https://www.cnblogs.com/lanyinhao/p/9634742.html 1.模块说明 requests是使用Apache2 licensed 许可证的HTTP库. ...
- Vue 3.3 发布
本文为翻译 原文地址:宣布推出 Vue 3.3 |The Vue Point (vuejs.org) 今天我们很高兴地宣布 Vue 3.3 "Rurouni Kenshin" 的发 ...
- 你不知道的PageContext
你不知道的PageContext 最近在文艺复兴,学习JSP和Servlet,此文为笔者学习记录. 本文分为以下几个部分: 前言 环境搭建 正文 总结 前言 在我们使用的项目中,存储数据最常用的非 S ...
- wpf 动画显示隐藏_[UWP]用Win2D和CompositionAPI实现文字的发光效果,并制作动画
weixin_39880899于 2020-12-11 09:26:23 发布 阅读量521 收藏 点赞数 文章标签: wpf 动画显示隐藏 1. 成果 献祭了周末的晚上,成功召唤出了上面的番茄钟 ...
- Newtonsoft.Json解决中文编码问题
Newtonsoft.Json解决中文编码 默认Newtonsoft.Json序列化对象后,返回的中文未进行编码. 需要将编码转换的话,需要 1 2 3 4 5 6 7 var json = Json ...
- OOP课第一阶段总结
前三次OOP作业总结Blog 前言 作为第一次3+1的总结,这次题目集的难度逐渐升高,题量.阅读量和测试点的数量变化都很大,所以对我们的编程和理解能力提出了更高的要求.要求我们能够熟练的掌握正则表达式 ...
- Web 网页性能及性能优化
Web 网页性能及性能优化 一.Web 性能 Web 性能是 Web 开发的一个重要方面,侧重于网页加载速度以及对用户输入的响应速度 通过优化网站来改善性能,可以在为用户提供更好的体验 网页性能既广泛 ...
- 在 TypeScript 中,extends
extends 是一个关键字,用于指定类型参数的约束.它在类型参数的声明中使用,以确保类型参数满足特定的条件. 具体来说,extends 后面可以跟随一个类型,表示类型参数必须是该类型的子类型.在泛型 ...
- Vue CLI 4与项目构建实战指南
title: Vue CLI 4与项目构建实战指南 date: 2024/6/9 updated: 2024/6/9 excerpt: 这篇文章介绍了如何使用Vue CLI优化项目构建配置,提高开发效 ...