1. 两数之和

  1. var twoSum = function(nums, target) {
  2. // 第一种
  3. // var len = nums.length
  4. // for (var i = 0; i < len; i++) {
  5. // for (var j = i + 1; j < len; j++) {
  6. // if (target - nums[i] == nums[j]) {
  7. // return [i, j]
  8. // }
  9. // }
  10. // }
  11. // 第二种
  12. var map = new Map()
  13. for (let i = 0; i < nums.length; i++) {
  14. var comNum = target - nums[i]
  15. if (map.has(comNum)) {
  16. return [map.get(comNum), i]
  17. } else {
  18. map.set(nums[i], i)
  19. }
  20. }
  21. return []
  22. };

9. 回文数

  1. var isPalindrome = function(x) {
  2. var str = '' + x
  3. var left = 0
  4. var right = str.length - 1
  5. while (left < right) {
  6. if (str.charAt(left) != str.charAt(right)) {
  7. return false
  8. }
  9. left++
  10. right--
  11. }
  12. return true
  13. };

13. 罗马数字转整数

  1. var romanToInt = function(s) {
  2. var roman = ['I', 'V', 'X', 'L', 'C', 'D', 'M', 'IV', 'IX', 'XL', 'XC', 'CD', 'CM']
  3. var num = [1, 5, 10, 50, 100, 500, 1000, 4, 9, 40, 90, 400, 900]
  4. var res = 0
  5. for (var i = 0; i < s.length; i++) {
  6. var t = s[i] + s[i + 1]
  7. if (roman.indexOf(t) >= 0) {
  8. res += num[roman.indexOf(t)]
  9. i++
  10. } else {
  11. res += num[roman.indexOf(s[i])]
  12. }
  13. }
  14. return res
  15. };

14. 最长公共前缀

  1. var longestCommonPrefix = function(strs) {
  2. var res = ''
  3. if (strs.length == 0) {
  4. return res
  5. }
  6. for (var i = 0; i < strs[0].length; i++) {
  7. for (var j = 0; j < strs.length; j++) {
  8. if (strs[0][i] != '' && strs[0][i] != strs[j][i]) {
  9. return res
  10. }
  11. }
  12. res += strs[0][i]
  13. }
  14. return res
  15. };

20. 有效的括号

  1. var isValid = function(s) {
  2. if (s.length % 2 !== 0) return false
  3. let tmp = ['(', '[', '{', ')', ']', '}'] // 012345
  4. let result = []
  5. for (let i = 0; i < s.length; i++) {
  6. if (tmp.indexOf(s[i]) <= 2) {
  7. result.push(s[i])
  8. } else {
  9. let last = result.pop()
  10. if (tmp.indexOf(last) + 3 != tmp.indexOf(s[i])) {
  11. return false
  12. }
  13. }
  14. }
  15. if (result.length > 0) return false
  16. return true
  17. };

21. 合并两个有序链表

  1. var mergeTwoLists = function(l1, l2) {
  2. let prevhead = new ListNode(-1)
  3. let prev = prevhead
  4. while (l1 !== null && l2 !== null) {
  5. if (l1.val <= l2.val) {
  6. prev.next = l1
  7. l1 = l1.next
  8. } else {
  9. prev.next = l2
  10. l2 = l2.next
  11. }
  12. prev = prev.next
  13. }
  14. prev.next = l1 === null ? l2 : l1
  15. return prevhead.next
  16. };

26. 删除有序数组中的重复项

  1. var removeDuplicates = function(nums) {
  2. for (var i = 0; i < nums.length; i++) {
  3. if (nums[i] == nums[i + 1]) {
  4. nums.splice(i, 1);
  5. i--
  6. }
  7. }
  8. return nums.length
  9. };

27. 移除元素

  1. var removeElement = function(nums, val) {
  2. for (let i = 0; i < nums.length; i++) {
  3. if (nums[i] == val) {
  4. nums.splice(i, 1);
  5. i--;
  6. }
  7. }
  8. return nums.length
  9. };

35. 搜索插入位置

  1. var searchInsert = function(nums, target) {
  2. var min = 0;
  3. var max = nums.length - 1;
  4. if (target < nums[min]) return min;
  5. if (target > nums[max]) return max + 1;
  6. while (min <= max) {
  7. var mid = parseInt((min + max) / 2)
  8. if (target == nums[mid]) {
  9. return mid
  10. } else if (target > nums[mid]) {
  11. min = mid + 1
  12. } else {
  13. max = mid - 1
  14. }
  15. }
  16. return min
  17. };

58. 最后一个单词的长度

  1. var lengthOfLastWord = function(s) {
  2. s = s.trim().replace(/\s+/g, ' ')
  3. var arr = s.split(' ')
  4. return arr[arr.length - 1].length
  5. };

leetcode简单(数组,字符串,链表):[1, 9, 13, 14, 20, 21, 26, 27, 35, 58]的更多相关文章

  1. redis底层数据结构--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表

    1.动态字符串 redis中使用c语言的字符床存储字面量,默认字符串存储采用自己构建的简单动态字符串SDS(symple dynamic string) redis包含字符串的键值对都是用SDS实现的 ...

  2. 【redis】redis底层数据结构原理--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表等

    redis有五种数据类型string.list.hash.set.zset(字符串.哈希.列表.集合.有序集合)并且自实现了简单动态字符串.双端链表.字典.压缩列表.整数集合.跳跃表等数据结构.red ...

  3. LeetCode 简单 -旋转字符串(796)

    给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能变成B ...

  4. redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表

    文中内容摘自<redis设计与实现> 简单动态字符串 1. Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态 ...

  5. 复杂的字符串数组解析:{"setting":"简单:10:5,一般:5:10,困难:2:20"},使用split多次截取

    "[0,{"id":563,"name":"测试题1","dscr":null,"picId&quo ...

  6. [Java]字符串数组 与 字符串链表 之间的相互转化

    代码: package com.hy; import java.util.Arrays; import java.util.Collections; import java.util.List; pu ...

  7. 【leetcode 206】 反转链表(简单)

    链表 概念: 区别于数组,链表中的元素不是存储在内存中连续的一片区域,链表中的数据存储在每一个称之为「结点」复合区域里,在每一个结点除了存储数据以外,还保存了到下一个结点的指针(Pointer). 由 ...

  8. C#LeetCode刷题-字符串

    字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串   24.6% 中等 5 最长回文子串   22.4% 中等 6 Z字形变换   35.8% 中等 8 字符串转整数 (atoi)   ...

  9. Collection集合重难点梳理,增强for注意事项和三种遍历的应用场景,栈和队列特点,数组和链表特点,ArrayList源码解析, LinkedList-源码解析

    重难点梳理 使用到的新单词: 1.collection[kəˈlekʃn] 聚集 2.empty[ˈempti] 空的 3.clear[klɪə(r)] 清除 4.iterator 迭代器 学习目标: ...

  10. 11-C语言指针&一维数组&字符串

    一.用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 1 // 定义一个int类型的数组 2 int a[4] = {1, 2, 3, 4}; 3 4 int i; 5 for (i = ...

随机推荐

  1. 可以把erp当做一个分支-找自己的方向

    之前一直在寻思自己应该做哪些方面,对所有编程的问题都在研究,又看到自己研究不透.现在,某一时刻看到,可以把erp当做一个分支. 就像游戏里的天赋点一样,进入这个分支... 这是一个专一的方面,和编程普 ...

  2. P1036 [NOIP2002 普及组] 选数

    传送锚点:https://www.luogu.com.cn/problem/P1036 题目描述 已知 \(n\) 个整数 \(x_1,x_2,\cdots,x_n\),以及 \(1\) 个整数 \( ...

  3. 基于 GoLang 编写的 IOT 物联网在线直播抓娃娃企业级项目

    基于 GoLang 编写的 IOT 物联网在线直播抓娃娃企业级项目 引言 前几年,娱乐物联网的热度很高.我当时所在的公司启动了一个将线下娃娃机的玩法,迁移到线上的项目,因此公司决定开发一个在线直播抓娃 ...

  4. Django——Media配置

    settings.py中的配置: MEDIA_ROOT 和 MEDIA_URL MEDIA_ROOT 是指:用户上传文件的根路径 --> MEDIA_ROOT = os.path.join(BA ...

  5. 实战SQL优化(以MySQL深分页为例)

    1 准备表结构 CREATE TABLE `student` ( `id` int NOT NULL AUTO_INCREMENT, `user_no` varchar(50) CHARACTER S ...

  6. Google,Baidu,Bing三大搜素引擎图片爬虫

    Google,Baidu,Bing三大搜素引擎图片爬虫 参考https://mp.weixin.qq.com/s/75QDjRTDCKzuM68L4fg5Lg 这个爬虫由ID为sczhengyabin ...

  7. docker部署php8.0 nginx1.18 mysql5.7 dnmp环境

    php8.0 nginx1.18 mysql5.7 #安装docker wget -O /etc/yum.repos.d/ali_docker-ce.repo https://mirrors.aliy ...

  8. uniapp 组件使用

    组件使用情况:页面出现多个相似的页面这个时候我们就可以把公共的页面进行封装,避免冗余的代码 1. compoents 目录下新建组件,名称随意[案例就叫 newsList]2. 开始封装需要多次使用的 ...

  9. numpy基础--ndarray(一种多维数组对象)

    NumPy基本介绍 NumPy(Numerical Python)是高性能科学计算和数据分析的基础包.其提供了以下基本功能: ndarray:一种具有矢量算术运算和复杂广播能力的快速且节省空间的多维数 ...

  10. CSP-S2019 江西 题解

    为什么有 \(5\) 道题? [CSP-S2019 江西] 和积和 简单化一下式子: \[(n + 1) \times \sum A_i \times B_i - (\sum A_i) \times ...