![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
修 己
这个作者很懒,什么都没留下…
展开
-
⚡️算法练习 ~数组-最大连续1的个数~⚡️
1 题目给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。2 示例代码public int longestOnes(int[] A, int K) { int left = 0;//窗口左边的位置原创 2021-10-08 15:25:57 · 167 阅读 · 0 评论 -
⚡️算法练习 ~数组-数组的度~⚡️
一、题目描述给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入:[1, 2, 2, 3, 1]输出:2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.示例 2:输入:[1,2,2,3,1,4,2]输出:6二、思路及解法记原数组中出现次数最多的数为 xx,那么和原数组的度相同的最短连续子数组原创 2021-09-28 14:40:28 · 110 阅读 · 0 评论 -
⚡️算法练习 ~字符串-左旋转字符串~⚡️
描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列 S,请你把其循环左移 K 位后的序列输出(保证 K 小于等于 S 的长度)。例如,字符序列S=”abcXYZdef”,要求输出循环左移 3 位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!示例输入:“abcXYZdef”,3返回值:“XYZdefabc”题解有一种不是最优解,却是比较简单的一个方法,字符串反转public class Soluti原创 2021-09-23 15:48:27 · 146 阅读 · 0 评论 -
⚡️算法练习 ~栈-获取栈内的最小值~⚡️
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。import java.util.Stack;/** * 定义栈的数据结构,请在该类型中实现一个能够得到栈中 * 所含最小元素的min函数(时间复杂度应为O(1))。 * Created by haoll on 2021/5/25 */public class Solution { private Stack<Integer> stack = new Stack<原创 2021-09-22 13:42:42 · 245 阅读 · 0 评论 -
⚡️算法练习 ~栈-栈的压入和弹出序列~⚡️
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)示例1输入[1,2,3,4,5],[4,3,5,1,2]返回值false解题思路借助一个栈来做栈的特点是先进后出表。栈是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进原创 2021-09-18 09:35:58 · 229 阅读 · 0 评论 -
⚡️算法练习 ~数组-转置矩阵~⚡️
题目给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]解题思路原数组的行和列,正好就是新数组的列和行。对换即可示例代码public int原创 2021-09-17 09:29:58 · 441 阅读 · 0 评论 -
⚡️算法练习 ~数组-最小的k个数~⚡️
题目描述给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组题解对于n个整数中最小的K个数的查找,可以使用各种排序算法:冒泡/堆排/快排/希尔排序等等。将此n个整数从小到大排序之后,前k个数就是所求的结果。但是当原数组中的数据顺序不可修改,并且n的值过于大的时候,各种排序算法要将n个数加载到内存中,即:如果是海量数据中查找出最小的k个数,那么这种办法是效率很低的。可以通过另一原创 2021-09-16 09:43:32 · 511 阅读 · 0 评论 -
⚡️算法练习 ~数组-两数之和~⚡️
题目描述给出一个整数数组,请在数组中找出两个加起来等于目标值的数,你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足index1 小于index2.。注意:下标是从1开始的假设给出的数组中只存在唯一解例如:给出的数组为 {20, 70, 110, 150},目标值为90输出 index1=1, index2=2题解一简单粗暴,双层循环相加进行比较。这是最容易想到的方法,枚举数组中的每一个数 x,寻找数组中是否存在 target - ximport java原创 2021-09-15 11:14:27 · 362 阅读 · 0 评论 -
⚡️算法练习 ~数组-顺时针打印矩阵~⚡️
描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:则依次打印出数字[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]][1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10]示例1输入:[[1,2],[3,4]]返回值:[1,2,4,3]解析简单来说,就是不断地收缩矩阵的边界:定义四个变量代表范围,up、down、left、right1、向右走存入整行的值,当原创 2021-09-15 09:54:20 · 266 阅读 · 0 评论 -
⚡️算法练习 ~回文数字~⚡️
1 题目描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。2 示例代码/** * (方法一)字符串反转 */ public static boolean isPalindrome(int x) { if(x < 0){ return false; }原创 2021-09-14 09:48:57 · 597 阅读 · 0 评论 -
JZ19 顺时针打印矩阵
描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:则依次打印出数字[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]][1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10]示例1输入:[[1,2],[3,4]]返回值:[1,2,4,3]解析简单来说,就是不断地收缩矩阵的边界:定义四个变量代表范围,up、down、left、right * 向右走存入整行的原创 2021-07-01 13:54:32 · 82 阅读 · 0 评论