算法题
Forever清
扶我起来,我还能学
展开
-
乐言科技 笔试面试:程序填空题,编程题: 输入任意一种物质,要求输出其每种元素的数量。(Java/C++)详细注释(面试过程问详请私信)
乐言科技笔试题,面试题输入任意一种物质,要求输出其每种元素的数量。原创 2023-03-07 17:38:35 · 784 阅读 · 2 评论 -
洛谷P1249 最大乘积 Java解法
贪心思想把数分解成2,3,4,5。。。n-1,n如果分到最后不够了,就把这个数从后往前分出1加给前面排好的数列题目原创 2022-06-07 21:00:20 · 180 阅读 · 0 评论 -
蓝桥杯第十届国赛-JavaB-8-大胖子走迷宫
蓝桥杯第十届决赛javaB大胖子走迷宫原创 2022-06-01 11:33:18 · 227 阅读 · 1 评论 -
蓝桥杯第十届国赛Java B组:最优旅行 (究极暴力解法)
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。中国的高铁四通八达,乘坐方便,小明经常乘坐高铁在城市间旅游。现在,小明又有了一个长假,他打算继续乘坐高铁旅游。这次,他打算到下面的城市旅游。上海、广州、长沙、西安、杭州、济南、成都、南京、昆明、郑州、天津、太原、武汉、重庆、南昌、长春、沈阳、贵阳、福州。小明打算从北京出发,游览以上每个城市正好一次,最终回到北京。在每个城市(除北京外),小明都至少停留 242424 小时。而当小明决定从一个城市去往另一个城市时,他只会选原创 2022-05-27 16:23:26 · 403 阅读 · 2 评论 -
LeetCode 304. 二维区域和检索 - 矩阵不可变(Java)
给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。示例:给定 matrix = [ [3, 0, 1, 4, 2], [5, 6, 3, 2, 1], [1, 2, 0, 1, 5], [4, 1, 0, 1, 7], [1, 0, 3, 0, 5]]sumRe原创 2021-05-01 20:24:40 · 105 阅读 · 0 评论 -
LeetCode 73. 矩阵置零(Java)
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matri原创 2021-04-25 13:18:20 · 70 阅读 · 0 评论 -
LeetCode 48. 旋转图像(Java)100%beat
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5]原创 2021-04-24 22:48:04 · 56 阅读 · 0 评论 -
LeetCode 566. 重塑矩阵(Java)
在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入: nums = [[1,2], [3,4]]r = 1, c = 4输出: [[1,2,3,4]]解释:行遍原创 2021-04-24 18:26:21 · 70 阅读 · 0 评论 -
LeetCode 498. 对角线遍历(Java)
给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]解释:说明:给定矩阵中的元素总数不会超过 100000 。题解:class Solution { public int[] findDiagonalOrder(int[][] mat) {原创 2021-04-23 23:47:30 · 64 阅读 · 0 评论 -
LeetCode 189. 旋转数组(Java)
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:原创 2021-04-22 13:43:22 · 59 阅读 · 0 评论 -
LeetCode 598. 范围求和 II(Java)100%beat
给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。示例 1:输入: m = 3, n = 3operations = [[2,2],[3,3]]输出: 4解释: 初始状态, M原创 2021-04-21 19:27:29 · 72 阅读 · 0 评论 -
LeetCode 661. 图片平滑器(Java)
包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1], [1,0,1], [1,1,1]]输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]解释:对于点 (0,0), (0,2), (2,0), (2,2): 平均(3/4) = 平均(0.75) = 0对于点 (0,1),原创 2021-04-21 12:22:19 · 97 阅读 · 0 评论 -
LeetCode 283. 移动零(Java)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。题解:class Solution { public void moveZeroes(int[] nums) { for(int i=0;i<nums.length-1;i++){ if(nums[i]==0原创 2021-04-20 18:23:00 · 77 阅读 · 0 评论 -
LeetCode 453. 最小操作次数使数组元素相等(Java)100%beat
给定一个长度为 n 的 非空 整数数组,每次操作将会使 n - 1 个元素增加 1。找出让数组所有元素相等的最小操作次数。示例:输入:[1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]题解:class Solution { public int minMoves(int[] nums) { int min=nums[0];原创 2021-04-19 20:43:05 · 124 阅读 · 0 评论 -
LeetCode 41. 缺失的第一个正数(Java)100%beat
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1题解:class Solution { public int firstMissingPositive(int[] nums) {原创 2021-04-17 21:11:42 · 60 阅读 · 0 评论 -
LeetCode 442. 数组中重复的数据(Java)
给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]题解:class Solution { public List<Integer> findDuplicates(int[] nums) { List<Integer> list=n原创 2021-04-17 17:52:11 · 93 阅读 · 0 评论 -
LeetCode 448. 找到所有数组中消失的数字(Java)
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]题解:class Solution { public List<Integer> findDisappearedN原创 2021-04-17 17:41:11 · 81 阅读 · 0 评论 -
01-复杂度3 二分查找(答案)
01-复杂度3 二分查找(答案)(PTA)中国大学MOOC-陈越、何钦铭-数据结构Position BinarySearch( List L, ElementType X ){ int left=1; int right=L->Last; do{ if(X>L->Data[(right-left)/2+left]){ left=(right-left)/2+left+1; } else if原创 2020-10-27 16:47:48 · 146 阅读 · 0 评论