class Solution { public int[] twoSum(int[] nums, int target) { // 返回目标两数之和的下标 // 已确定存在一种答案 双重循环是第一种方式 // hashMap 保存数组的值与下标
快速排序 快速排序:和归并排序类似,也是分区递归排序,区别是,归并排序先分区,在排序合并,快排是,先抽取point,排序,分区,在抽point,point是要排序数组里的一个数,我直接抽第一个,把大于point的数放左边,小于point的数放右边,在吧point置换进去 public class C
归并排序 思路很简单,就是不断的分区,分到不可在分的时候就合并,很适合用递归,可惜不是原地排序,用了额外空间,因此没有快排火,代码思路简单,数组合入,与复制要注意边界,我就是这样被坑的 public class Client { public static void main(String[
冒泡,插入,选择排序 冒泡排序:依次比较相邻元素,大的交换到右边 插入排序:后面元素依次与前面排好序元素做比较,小的插进来,后面的元素后移 选择排序:取未排好的第一个元素,依次比较后面元素,小则交换
链表 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据 链表(Linked)是一种线性表数据结构。不需要连续的内存空间,来存储一组具有相同类型的数据 特征: 单链表 1.拥有data和后继 2.插入删除时间复杂度为O(1) 3.查找时间复杂度为O(n) 4
数组 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据 随机下标访问为O(1) $address = base + n*btye$ 二维数据随机地址 $address = base + (i*btye + j)*byte$ 插入删除时间复杂度 $(1 +
时间复杂度(2) 1.最好情况复杂度 2.最坏情况复杂度 3.平均时间复杂度 4.均摊时间复杂度 实战 // 全局变量,大小为10的数组array,长度len,下标i。 int array[] = new int[10]; int len = 10; int i = 0;
时间复杂度(1) 时间复杂度 :也叫渐进时间复杂度,表示的是时间与数据规模的增长关系 $Tn = O(f(n))$ Tn表示的是时间,n的增长表示数据增长的规模 举个例子 #include<stdio.h> int main() { int x = 5; int y = 8;
33. 搜索旋转排序数组 二分搜索 题目描述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1],
397 整数替换 题目描述 给定一个正整数 n ,你可以做如下操作: 如果 n 是偶数,则用 n / 2替换 n 。 如果 n 是奇数,则可以用 n + 1或n - 1替换 n 。 n 变为 1 所需的最小替换次数是多少? 示例 1: 输入:n = 8 输出:3 解释:8 -> 4 -> 2 ->
这就是我
文章
分类
访问量
建站天数
标签目录
最近评论