算法
秀强
物有本末,事有终始。
展开
-
面试题 17.05. 字母与数字
输入: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”,“H”,“I”,“J”,“K”,“L”,“M”]输出: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”]链接:https://leetcode.cn/problems/find-longest-subarray-lcci。给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。...原创 2022-08-07 22:18:44 · 194 阅读 · 0 评论 -
1052. 爱生气的书店老板
给定一个长度为 n 的整数数组 customers ,其中 customers[i] 是在第 i 分钟开始时进入商店的顾客数量,所有这些顾客在第 i 分钟结束后离开。输入:customers = [1,0,1,2,1,1,7,5], grumpy = [0,1,0,1,0,1,0,1], minutes = 3。如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。输入:customers = [1], grumpy = [0], minutes = 1。...原创 2022-08-07 22:18:01 · 123 阅读 · 0 评论 -
力扣1037. 有效的回旋镖
给定一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点,如果这些点构成一个 回旋镖 则返回 true 。回旋镖 定义为一组三个点,这些点 各不相同 且 不在一条直线上 。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/valid-boomerang...原创 2022-07-03 22:46:52 · 141 阅读 · 0 评论 -
力扣1217. 玩筹码
有 n 个筹码。第 i 个筹码的位置是 position[i] 。我们需要把所有筹码移到同一个位置。在一步中,我们可以将第 i 个筹码的位置从 position[i] 改变为:position[i] + 2 或 position[i] - 2 ,此时 cost = 0position[i] + 1 或 position[i] - 1 ,此时 cost = 1返回将所有筹码移动到同一位置上所需要的 最小代价 。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/原创 2022-06-16 22:36:21 · 273 阅读 · 0 评论 -
力扣 1984. 学生分数的最小差值
给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。从数组中选出任意 k 名学生的分数,使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。返回可能的 最小差值 。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/minimum-difference-between-highest-and-lowest-of-k-scores...原创 2022-06-06 21:42:42 · 263 阅读 · 0 评论 -
力扣 1652. 拆炸弹
你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之和替换。如果 k < 0 ,将第 i 个数字用 之前 k 个数字之和替换。如果 k == 0 ,将第 i 个数字用 0 替换。由于 code 是循环的, code[n-1] 下一个元素是 code[0] ,且 code[0] 前一个元素是 code[n-1] 。给你原创 2022-06-02 00:17:38 · 178 阅读 · 0 评论 -
力扣 1848. 到目标元素的最小距离
给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数 target 和 start ,请你找出一个下标 i ,满足 nums[i] == target 且 abs(i - start) 最小化 。注意:abs(x) 表示 x 的绝对值。返回 abs(i - start) 。题目数据保证 target 存在于 nums 中。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/minimum-distance-to-the-target-element原创 2022-06-01 21:39:57 · 179 阅读 · 0 评论 -
力扣 1588. 所有奇数长度子数组的和
给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sum-of-all-odd-length-subarrays原创 2022-06-01 21:13:32 · 166 阅读 · 0 评论 -
力扣 500 键盘行
文章目录题目思路题目给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 “qwertyuiop” 组成。第二行由字符 “asdfghjkl” 组成。第三行由字符 “zxcvbnm” 组成。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/keyboard-row思路将 26 个字母 a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、原创 2022-05-23 20:38:06 · 168 阅读 · 0 评论 -
力扣 2016 增量元素之间的最大差值
题目描述给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。返回 最大差值 。如果不存在满足要求的 i 和 j ,返回 -1 。解法一:暴力解法 public static int maximumDifference(int[] nums) { // 不存在同时满足 i < j 和 nu原创 2022-05-22 11:27:29 · 178 阅读 · 0 评论 -
1000以内的质数且是回文数
import java.util.ArrayList;import java.util.List;public class PrimeAndBalance { public static void main(String[] args) { long l = System.nanoTime(); List<Integer> result = new PrimeAndBalance().find(1000 * 1000); long e原创 2021-09-07 21:44:27 · 215 阅读 · 0 评论 -
排序算法之快速排序
package com.company;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] a = {1, 4, 2, 6, 5}; quick_sort(a, a.length); System.out.println(Arrays.toString(a)); } public sta原创 2021-08-30 20:53:54 · 92 阅读 · 0 评论 -
如何判断链表成环以及求入环点
题目有一个单向链表,链表中可能出现环,如何判断链表有环?思路快慢指针法快指针一次走两步慢指针一次一步比较两个指针指向的节点是否相同,如果相同,则可以判断出链表有环。代码public class Solution { public boolean hasCycle(ListNode head) { if(head == null || head.next == null){ return false; } List原创 2021-08-02 00:00:21 · 528 阅读 · 0 评论 -
使用栈实现队列
题目用栈模拟一个队列,要求实现栈的两个基本操作:入队、出队。思路使用两个栈A和B。入队时都放到栈A里,出队时,把栈A的元素弹出放入栈B(这一步是为了改变元素顺序)。然后从栈B中pop。代码 class CQueue { private Stack<Integer> stackA = new Stack<Integer>(); private Stack<Integer> stackB = new Stack<Integer>()原创 2021-07-31 17:39:20 · 103 阅读 · 0 评论 -
判断一个数是否是2的整数次幂
2的整数次幂的二进制的特点:最高位为1,其余都是0,例如8的二进制为1000B2的整数次幂减1以后,他的二进制数字就全变成了1,比如8-1 7的二进制:111B所以对于一个整数n,只需要计算n&(n-1)的结果是不是0。时间复杂度为O(1)class Solution { public boolean isPowerOfTwo(int n) { return n > 0 && (n&(n-1)) == 0; }}力扣:pow原创 2021-07-26 11:57:36 · 264 阅读 · 0 评论