极客时间算法训练营 Week01

简介: 极客时间算法训练营 Week01

本周学习内容包括:数组、链表、栈、队列。

  • 数组
  • 支持随机访问
  • 按下标访问 O(1)复杂度
  • 在内存中是一段连续的存储空间
  • 操作复杂度
  • LookUp O(1)
  • Insert O(n)
  • Delete O(n)
  • Append O(1)
  • Prepend O(n)
  • 变长数组
  • 链表
  • 允许存储空间不连续
  • 单链表
  • 插入
  • 删除
  • 操作复杂度
  • LookUp O(n)
  • Insert O(1)
  • Delete O(1)
  • Append O(n)
  • Prepend O(1)

  • 先进后出(Last in, first out)
  • 队列
  • 先进先出(First in, first out)


66. 加一

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
    public int[] plusOne(int[] digits) {
        int length = digits.length;
        List<Integer> list = new ArrayList<>(length * 2);
        int increment = 1;
        for (int i = length - 1; i >= 0; i--) {
            int result = digits[i] + increment;
            list.add(result % 10);
            increment = result / 10;
        }
        if (increment > 0) {
            list.add(increment);
        }
        int size = list.size();
        int[] results = new int[size];
        for (int i = 0; i < list.size(); i++) {
            results[size - i - 1] = list.get(i);
        }
        return results;
    }
}


21. 合并两个有序链表

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode head = new ListNode();
        ListNode cur = head;
        while(l1 != null && l2 != null) {
            int i1 = l1.val;
            int i2 = l2.val;
            if(i1 <= i2) {
                cur.next = l1;
                l1 = l1.next;
            } else {
                cur.next = l2;
                l2 = l2.next;
            }
            cur = cur.next;
        }
        if (l1 != null) {
            cur.next = l1;
        }
        if (l2 != null) {
            cur.next = l2;
        }
        return head.next;
    }
}

目录
相关文章
|
算法
极客时间算法训练营 Week03
极客时间算法训练营 Week03
154 0
|
17天前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 算法 安全
计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)
计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)
|
20天前
|
算法
离散粒子群算法(DPSO)的原理与MATLAB实现
离散粒子群算法(DPSO)的原理与MATLAB实现
55 0
|
12天前
|
机器学习/深度学习 算法 新能源
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
|
13天前
|
算法 机器人 定位技术
基于机器视觉和Dijkstra算法的平面建筑群地图路线规划matlab仿真
本程序基于机器视觉与Dijkstra算法,实现平面建筑群地图的路径规划。通过MATLAB 2022A读取地图图像,识别障碍物并进行路径搜索,支持鼠标选择起点与终点,最终显示最优路径及长度,适用于智能导航与机器人路径规划场景。
|
14天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的XGBoost时间序列预测算法matlab仿真
本程序基于Matlab 2024b实现,结合粒子群优化(PSO)与XGBoost算法,用于时间序列预测。通过PSO优化XGBoost超参数,提升预测精度。程序包含完整注释与操作视频,运行后生成预测效果图及性能评估指标RMSE。
|
12天前
|
传感器 并行计算 算法
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
|
12天前
|
存储 算法 安全
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
|
12天前
|
机器学习/深度学习 传感器 数据采集
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)

热门文章

最新文章