目录

一、最接近三数之和

1、题目描述

2、题解

3、源码

二、电话号码的字母组合

1、题目描述

2、题解

3、源码

三、四数之和

1、题目描述

2、题解

3、源码

四、删除链表的倒数第N个结点

1、题目描述

2、题解

3、源码

五、有效括号

1、题目描述

2、题解

3、源码


一、最接近三数之和

1、题目描述

2、题解

3、源码

class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:best = 10**7n = len(nums)nums.sort()for i in range(n):if i > 0 and nums[i] == nums[i - 1]:continueL = i + 1R = n - 1while L < R:s = nums[i] + nums[L] + nums[R]if s == target:return targetif abs(s - target) < abs(best - target):best = sif s > target:R -= 1while L < R and nums[R] == nums [R + 1]:R -=1else:L +=1while L < R and nums[L] == nums[L - 1]:L +=1return best

二、电话号码的字母组合

1、题目描述

2、题解

3、源码

class Solution:def letterCombinations(self, digits: str) -> List[str]:if digits == '':return []phoneMap = {"2": "abc","3": "def","4": "ghi","5": "jkl","6": "mno","7": "pqrs","8": "tuv","9": "wxyz",}res = ['']for num in digits:chars = phoneMap[num]new_res = []for r in res:for char in chars:new_res.append(r+char)res = new_resreturn res

三、四数之和

1、题目描述

2、题解

3、源码


class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:quadruplets = list()if not nums or len(nums) < 4:return quadrupletsnums.sort()length = len(nums)for i in range(length - 3):if i > 0 and nums[i] == nums[i - 1]:#排序之后的去重continueif nums[i] + nums[i + 1] + nums[i + 2] + nums[i + 3] > target:#判断最小的和跟目标值的关系breakif nums[i] + nums[length - 3] + nums[length - 2] + nums[length - 1] < target:continue#用最小的与最大的三数和,一次减少循环for j in range(i + 1, length - 2):#最右边为有指针的位置if j > i + 1 and nums[j] == nums[j - 1]:#去重continueif nums[i] + nums[j] + nums[j + 1] + nums[j + 2] > target:break#同样是最小的和与目标值比较if nums[i] + nums[j] + nums[length - 2] + nums[length - 1] < target:continueleft, right = j + 1, length - 1while left < right:total = nums[i] + nums[j] + nums[left] + nums[right]if total == target:quadruplets.append([nums[i], nums[j], nums[left], nums[right]])while left < right and nums[left] == nums[left + 1]:left += 1left += 1while left < right and nums[right] == nums[right - 1]:right -= 1right -= 1elif total < target:left += 1else:right -= 1return quadruplets

四、删除链表的倒数第N个结点

1、题目描述

2、题解

3、源码

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:def getLength(head: ListNode) -> int:length = 0while head:length += 1head = head.nextreturn lengthdummy = ListNode(0, head)length = getLength(head)cur = dummyfor i in range(1, length - n + 1):cur = cur.nextcur.next = cur.next.nextreturn dummy.next

五、有效括号

1、题目描述

2、题解

3、源码

class Solution {
public:bool isValid(string s) {stack<int> st;for (int i = 0; i < s.size(); i++) {if (s[i] == '(') st.push(')');else if (s[i] == '{') st.push('}');else if (s[i] == '[') st.push(']');// 第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号 return false// 第二种情况:遍历字符串匹配的过程中,发现栈里没有我们要匹配的字符。所以return falseelse if (st.empty() || st.top() != s[i]) return false;else st.pop(); // st.top() 与 s[i]相等,栈弹出元素}// 第一种情况:此时我们已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false,否则就return truereturn st.empty();}
};

LeedCode刷题相关推荐

  1. 【leedcode刷题1】两数之和

    [leedcode刷题 1]两数之和 大家好,小生不才,从今天开始将自己刷题的过程记录在博客中,因为能力有限,所以如果有什么错的地方希望大家积极指正,不胜感激. 题目 给定一个整数数组 nums 和一 ...

  2. LeedCode刷题笔记-Z字形变化

    LeedCode刷题笔记-Z字形变化 题目描述 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRI ...

  3. Leedcode刷题技巧及方法总结(学习笔记,建议收藏,持续更新)

    1. int mid=left + (right - left)/2  leedcode 278 有效防止mid溢出 2.想要更改链表链接顺序,可以考虑使用guard拆解链接 leecode 138 ...

  4. leedcode刷题——整数反转

    给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果. 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0. 示例 1: 输入:x = ...

  5. Leedcode编程题18: 四数之和----C++实现

    目的 旨在记录在Leedcode网上刷题的过程,记录心得. 题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得  ...

  6. 牛年前的一小结——打响本命年的第一枪,继续刷题!

    经过一段时间的小尝试,摸索出了一点点头儿吧. 总结一下子. 关于面试的java,像我这个经验层次(1-2year普通厂)的都不会太难.最多超不出力扣中等难度. 多练习链表.树.指针类的比较基础的题目: ...

  7. 牛客网里刷题:JS获取输入的数组

    有的时候我们刷题会遇到下面这种输入格式,那么用js怎么把它变成数组呢? [1,2,3,4,5] 难道用readline()之后在踢掉首尾的字符吗?这样也太麻烦了! 我发现了一个好用的方法: let l ...

  8. 【Leetcode】刷题之路2(python)

    哈希映射类题目(简单题小试牛刀啦bhn) 242.有效的字母异位词 349.两个数组的交集 1002.查找常用字符 202.快乐数 383.赎金信 242. 有效的字母异位词 用python的Coun ...

  9. 【Leetcode】 刷题之路1(python)

    leetcode 刷题之路1(python) 看到有大佬总结了一些相关题目,想着先刷一类. 1.两数之和 15.三数之和 16.最接近的三数之和 11.盛最多的水 18.四数之和 454.四数相加II ...

最新文章

  1. 不知道什么时间收集的code
  2. 聊聊MyBatis缓存机制
  3. python编程自学能学会吗-小白看看!本人自学Python编程经验分享。
  4. pat数素数 20 c语言,PAT乙级C语言1013 数素数
  5. [Android] AlertDialog获取网上天气并显示各城市天气
  6. macos mojave_如何修复macOS Mojave上的模糊字体(使用亚像素抗锯齿)
  7. (四)十大经典排序算法(动画图解,代码完全)
  8. python函数赋值给对象_【Python核心编程笔记】一、Python中一切皆对象
  9. 拖拽之路(一):自定义QListWidget实现美观的拖拽样式(拖拽即选中)
  10. Sprig 面试中 问及 DI,IOC, AOP
  11. android -------- ConstraintLayout 宽高比和偏移量比(三)
  12. 怎么查询电脑是否支持IPV6地址?
  13. win7系统安装SQL Server 2005开发版步骤详解
  14. java 课设 商品库存管理系统
  15. 逻辑思维语音01——麦当劳
  16. android系统目录和作用是什么意思,安卓Android手机系统内文件夹目录解释
  17. 变形金刚图片----汽车人
  18. 网络攻击肆虐-给你的网络设备来套防弹衣吧!
  19. 四川大学2014年数学分析考研试题
  20. 【php】PHP单例模式

热门文章

  1. matlab randn state 2,MATLAB?中的randn函数
  2. svn冲突怎么解决_管理者怎么处理员工冲突?解决下属冲突的6个方法
  3. fiddler抓包工具配置详解
  4. Python单元测试介绍及单元测试理解,单元测试的自动生成(对函数进行测试)
  5. mysql用代码建表基础语法
  6. 洛谷 P2722 总分题解
  7. 手把手教你用原始方式上传项目至GitHub
  8. bzoj5324:[Jxoi2018]守卫
  9. Ajax--serialize应用表单数据序列化
  10. 第4阶段——制作根文件系统之分析init_post()如何启动第1个程序(1)