数组
Popuessing's Jersey
这个作者很懒,什么都没留下…
展开
-
如何提高冒泡排序效率呢
冒泡排序是一种基于比较的排序方法,他的时间复杂都一般来说是O(N*N),那么如何优化冒泡排序的时间复杂度呢?我们可以通过提前终止来提前结束冒泡排序。方法也很简单,就是当某一次循环中元素完全不进行交换,那么我们可以认为此时的数组已经完成了排序,此时可以提前结束冒泡排序。原创 2023-01-10 15:42:33 · 676 阅读 · 0 评论 -
数据结构——数组(小结)
数组的定义:数组是存放在连续内存空间上的相同数据类型的集合数组的属性:内存地址、数组元素、下标注意:1、数组的内存空间的地址是连续的2、数组的下标是从零开始的3、数组中的元素不能删除,只能覆盖提问:二维数组的内存空间地址是连续的吗?答:二维数组的内存地址空间不一定是连续的,它是由行数的内存地址空间和列数的内存地址空间组合而成的,例如int [][] nums = new int[3][4],这是一个三行四列的二维数组此时的内存地址空间应该是一个对应行数的大小为3的连续原创 2021-11-17 19:40:45 · 455 阅读 · 0 评论 -
59、螺旋矩阵(数组)
题目:给定一个正整数n,生成一个包含 1 到n^2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]public int[][] generateMatrix(int n){ //创建一个二维数组 int [][] res = new int[n][n]; //定义每循环一圈的起始位置 int startX =0...原创 2021-11-17 19:28:36 · 122 阅读 · 0 评论 -
209、长度最小的子数组(数组)
题目:给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组[4,3]是该条件下的长度最小的子数组。方法一:暴力解法public int minSubArrayLen(int s,int[] nums){ int n = nums.length; //子序列之和 ...原创 2021-11-17 18:20:14 · 77 阅读 · 0 评论 -
997、有序数组的平方(数组)
题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]示例 2: 输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121]方法一:暴力解法import java.util.Arrays;publ原创 2021-11-16 21:36:54 · 104 阅读 · 0 评论 -
移除元素(数组)
数组在内存地址中是连续的,不能单独地删除数组中某个元素,只能覆盖最容易想到的方法:暴力解法public int removeElement(int [] nums,int val){ int n = nums.length; for (int i = 0; i <n ; i++) { //发现需要移除的元素,就将数组集体向前移动一位 if(nums[i]==val){ for (i原创 2021-11-16 21:00:55 · 405 阅读 · 0 评论 -
二分查找(数组)
public class Erfenchazhao { public int search(int [] nums ,int target){ if(target <nums[0] || target> nums[nums.length-1]){ return -1; } int left = 0, right = nums.length-1; while (left<=right){ ...原创 2021-11-16 20:37:41 · 218 阅读 · 0 评论