算法
zone7_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode-21. 合并两个有序链表 -- Python解
原题描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = [], l2 = [0] 输出:[0] 提示: 两个链表的节点数目范围是 [0, 50] -100 <= Node.val <= 100 l1 和 l2 均按 非递减顺序 排列 来源:力原创 2022-04-27 17:05:55 · 1537 阅读 · 0 评论 -
LeetCode-25. K 个一组翻转链表 -- Python解
原题描述 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例 1: 输入:head = [1,2,3,4,5], k = 2 输出:[2,1,4,3,5] 示例 2: 输入:head = [1,2,3,4,5], k = 3 输出:[3,2,1,4,5] 提示: 链表中的节点数目为 n 1原创 2022-04-27 14:45:10 · 421 阅读 · 0 评论 -
LeetCode-15. 三数之和 -- Python解
原题描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] 示例 2: 输入:nums = [] 输出:[] 示例 3: 输入:nums = [0] 输出:[] 提示: 0 <= nums.length <= 3000 -原创 2022-04-27 14:39:50 · 245 阅读 · 0 评论 -
LeetCode-3. 无重复字符的最长子串 -- Python解
原题描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,原创 2022-04-27 14:36:31 · 370 阅读 · 0 评论 -
LeetCode-146. LRU 缓存 -- Python解
题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操原创 2022-04-27 14:33:18 · 636 阅读 · 0 评论 -
LeetCode-206. 反转链表 -- Python解
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-li原创 2022-04-27 14:28:55 · 1479 阅读 · 0 评论 -
LeetCode-200. 岛屿数量 -- Python解
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"] ] 输出:1 示例 2: 输入:grid = [ ["1"原创 2022-04-27 13:10:06 · 799 阅读 · 0 评论 -
LeetCode-46. 全排列 -- Python解
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输出:[[0,1],[1,0]] 示例 3: 输入:nums = [1] 输出:[[1]] 提示: 1 <= nums.length <= 6 -10 <= nums[i] <= 10原创 2022-04-27 13:05:16 · 737 阅读 · 0 评论 -
数组的下标为什么是从 0 开始算的?
首先,我们先来看看数组的定义:数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 然后,我们再来看看数组的下标是什么意思:下标是现对于第一个数组元素的偏移量 – offset,例如:数组 a[0] 则代表偏移 0 个位置,数组 a[1] 则代表偏移 1 个位置。 用图片表示如上图。 数组都有分配内存的首地址,我们把首地址定义为:base_address 那么如上图中 base_address 为 1000,即是 a[0] = 1000 我们可以很容易地从图中得出数组的寻址原创 2022-03-31 21:43:18 · 2108 阅读 · 0 评论 -
python 实现二叉树的深度&&广度优先遍历
本文首发于公众号「zone7」,关注获取最新推文! 概述 前言 什么是树 什么是二叉树 深度优先 广度优先 后记 前言 前面说到算法被虐了,这回我要好好把它啃下来。哪里跌倒就要从哪里站起来。这是我复习算法与数据结构时的小笔记,这里就 po 出来,给大家也复习一下旧的知识点,查缺补漏。如果我的文章对你有帮助,欢迎关注、点赞、转发,这样我会更有动力做原创分享。 什么是树 在计算器科学中,树(英...原创 2018-11-07 16:32:07 · 700 阅读 · 1 评论
分享