优选算法系列
文章平均质量分 73
未央.303
大三下在校大学生,目前在学习Java编程,主要学习测试开发相关内容,希望在这里能收获很多知识,共同进步!!!!!
展开
-
【优选算法系列】【专题三二分查找】第二节.852. 山脉数组的峰顶索引和162. 寻找峰值
一、山脉数组的峰顶索引1.1 题目描述符合下列属性的数组 arr 称为 山脉数组 :存在 i(0 < i < arr.length - 1)使得:给你由整数组成的山脉数组 arr ,返回满足 arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1] 的下标 i。你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。原创 2024-01-30 17:24:55 · 291 阅读 · 0 评论 -
【优选算法系列】【专题十四优先级队列】第一节.(1046. 最后一块石头的重量和703. 数据流中的第 K 大元素)
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x!= y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回0。设计一个找到数据流中第k大元素的类(class)。注意是排序后的第k大元素,不是第k个不同的元素。请实现KthLargest使用整数k。原创 2023-11-29 13:45:39 · 99 阅读 · 0 评论 -
【优选算法系列】【专题十三队列+宽搜】第一节.(429. N 叉树的层序遍历和103. 二叉树的锯齿形层序遍历)
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。树的高度不会超过1000树的节点总数在[0, 10^4]之间示例1:给你二叉树的根节点root,返回其节点值的 锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。原创 2023-11-29 13:45:21 · 88 阅读 · 0 评论 -
【优选算法系列】【专题十二栈】第一节.栈的简介(1047. 删除字符串中的所有相邻重复项和844. 比较含退格的字符串)
文章目录前言 一、删除字符串中的所有相邻重复项和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 二、比较含退格的字符串 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写 总结前言一、删除字符串中的所有相邻重复项和1.1 题目描述描述:给原创 2023-11-03 14:20:00 · 183 阅读 · 0 评论 -
【优选算法系列】【专题十哈希表】第一节.哈希表简介(1. 两数之和and面试题 01.02. 判定是否互为字符重排)
定义:也叫做散列表,是根据关键字和值(Key Value)直接进行访问的数据结构,即通过一个关键字Key和一个映射函数Hash计算出对应的值Value,然后把键值对映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做哈希函数,用于存放记录的数组叫做哈希表。即存储数据的表。通过哈希函数使得数据和存储位置之间建立一一对应的映射关系。在查找时,通过哈希函数可以直接找到该元素。作用:在查找时,通过哈希函数可以直接找到该元素。即快速的查找到某个元素;原创 2023-11-01 09:52:07 · 222 阅读 · 2 评论 -
【优选算法系列】【专题九链表】第一节.链表常用技巧和操作总结(2. 两数相加)
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。原创 2023-11-03 14:41:08 · 204 阅读 · 0 评论 -
【优选算法系列】【专题七分治】第一节.75. 颜色分类和912. 排序数组
给定一个包含红色、白色和蓝色、共n个元素的数组nums原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数01和2分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。原创 2023-11-10 14:58:59 · 95 阅读 · 8 评论 -
【优选算法系列】【专题六模拟】第一节.1576. 替换所有的问号和495. 提莫攻击
给你一个仅包含小写英文字母和字符的字符串s,请你将所有的转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。你 不能 修改非字符。题目测试用例保证 除字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。原创 2023-11-03 10:42:47 · 104 阅读 · 0 评论 -
【优选算法系列】【专题五位运算】第二节.371. 两整数之和and137. 只出现一次的数字 II
给你两个整数a和b,不使用 运算符和,计算并返回两整数之和。原创 2023-11-10 14:56:18 · 99 阅读 · 0 评论 -
【优选算法系列】【专题五位运算】第一节.常见的位运算(面试题 01.01. 判定字符是否唯一和268. 丢失的数字)
1.基础位运算:2.给一个数n,确定它的二进制表示中的第x位是0还是1;通过让这个n先向右移x位,再&上1即可;即图示示例:3.将一个数n的二进制表示的第x位修改成1;通过先让1原创 2023-11-03 14:04:34 · 194 阅读 · 0 评论 -
【优选算法系列】【专题四前缀和】第一节.DP34 一维前缀和DP35 二维前缀和
文章目录前言 一、一维前缀和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 二、二维前缀和 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写 总结前言一、一维前缀和1.1 题目描述描述:给定一个长度为n的数组1,2,....原创 2023-11-03 14:19:42 · 75 阅读 · 0 评论 -
【优选算法系列】【专题三二分查找】第二节.35. 搜索插入位置和69. x 的平方根
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(log n)的算法。nums为 无重复元素 的 升序 排列数组示例1:示例2:给你一个非负整数x,计算并返回x的 算术平方根。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如或者x ** 0.5。原创 2023-12-05 20:14:21 · 138 阅读 · 1 评论 -
【优选算法系列】【专题三二分查找】第一节.二分查找简介(704. 二分查找和34. 在排序数组中查找元素的第一个和最后一个位置)
定义:二分就是每次把当前需要寻找的数组分成两半,那么我需要寻找的这个数只可能在左半边,或者右半边,这样一来我每次分完,所需要查找的元素的个数就是上一次查找元素个数的一半。先找出当前判断的数组中点,将目标值与当前中点值比较,判断是继续在左侧查找还是在右侧查找,直到需要判断的数组元素为1个时,判断此元素是否是需要查的元素,若是则返回该元素下标,否则则返回-1,结束查找。细节最多,最容易写出死循环的算法;原创 2023-10-31 16:36:13 · 92 阅读 · 1 评论 -
【优选算法系列】【专题二滑动窗口】第四节.30. 串联所有单词的子串和76. 最小覆盖子串
给定一个字符串s和一个字符串数组words。words中所有字符串 长度相同。s中的 串联子串 是指一个包含words中所有字符串以任意顺序排列连接起来的子串。例如,如果, 那么"abcdef""abefcd""cdabef""cdefab""efabcd", 和"efcdab"都是串联子串。"acdbef"不是串联子串,因为他不是任何words排列的连接。返回所有串联子串在s中的开始索引。你可以以 任意顺序 返回答案。words[i]和s由小写英文字母组成示例1:示例2:给你一个字符串s。原创 2023-12-08 15:25:10 · 769 阅读 · 4 评论 -
【优选算法系列】【专题二滑动窗口】第三节.904. 水果成篮和438. 找到字符串中所有字母异位词
你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果 种类。你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:你只有 两个 篮子,并且每个篮子只能装 单一类型 的水果。每个篮子能够装的水果总量没有限制。你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。原创 2023-12-08 15:24:11 · 120 阅读 · 0 评论 -
【优选算法系列】【专题二滑动窗口】第二节.1004. 最大连续1的个数 III和1658. 将 x 减到 0 的最小操作数
描述:给定一个二进制数组nums和一个整数k,如果可以翻转最多k个0,则返回 数组中连续1的最大个数。原创 2023-11-10 14:42:20 · 108 阅读 · 0 评论 -
【优选算法系列】【专题二滑动窗口】第一节.209. 长度最小的子数组和3. 无重复字符的最长子串
优选算法之滑动窗口系列!!!!原创 2023-10-28 15:53:15 · 142 阅读 · 2 评论 -
【优选算法系列】【专题一双指针】第四节.15. 三数之和和18. 四数之和
文章目录前言 一、三数之和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 1.2.3 题目总结 二、四数之和 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写 2.2.3 题目总结 总结前言原创 2023-12-05 20:13:50 · 90 阅读 · 0 评论 -
【优选算法系列】【专题一双指针】第三节.611. 有效三角形的个数和LCR 179. 查找总价格为目标值的两个商品
文章目录前言 一、有效三角形的个数 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 1.2.3 题目总结 二、查找总价格为目标值的两个商品 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写 2.2.3 题原创 2023-12-05 20:13:33 · 87 阅读 · 0 评论 -
【优选算法系列】【专题一双指针】第二节.202. 快乐数和11. 盛最多水的容器
优选算法之双指针!!!!!!原创 2023-10-27 20:37:02 · 204 阅读 · 8 评论 -
【优选算法系列】【专题一双指针】第一节.283. 移动零和1089. 复写零
优选算法之双指针原创 2023-10-27 20:04:22 · 285 阅读 · 2 评论