2024“华为杯”中国研究生数学建模竞赛(E题)深度剖析_数学建模完整过程+详细思路+代码全解析

news2024/9/21 15:50:13

问题1详细解答过程

(1) 交通流参数统计

数据预处理

  1. 数据读取

    从四个视频观测点提取交通流数据,包括每个时间段内的车流量、车速和车道占用率等。

交通流参数计算
3. 计算流量 (Q)

Q ( t ) = N ( t ) Δ t Q(t) = \frac{N(t)}{\Delta t} Q(t)=ΔtN(t)

其中 N ( t ) N(t) N(t) 是在时间段 Δ t \Delta t Δt 内通过某个观测点的车辆数。

  1. 计算密度 (K)

    K ( t ) = N ( t ) L K(t) = \frac{N(t)}{L} K(t)=LN(t)

    其中 L L L 是路段的长度(例如5000m)。

  2. 计算速度 (V)

    V ( t ) = Q ( t ) K ( t ) V(t) = \frac{Q(t)}{K(t)} V(t)=K(t)Q(t)

  3. 时间序列分析

    • 利用统计方法对流量、密度和速度进行时间序列分析。可以绘制流量、密度和速度随时间变化的曲线图。
    • 识别趋势、季节性、周期性和异常值。
(2) 拥堵模型建立

模型假设

  1. 流量和密度关系

假设车辆流量与密度之间的关系遵循某种线性或非线性模型。例如,使用基本的交通流模型:

Q = K ⋅ V Q = K \cdot V Q=KV

其中 Q Q Q 是流量, K K K 是密度, V V V 是速度。

  1. 拥堵阈值
    • 设定一个密度阈值 K t h r e s h o l d K_{threshold} Kthreshold,当密度超过该值时,即认为可能发生拥堵。
    • 可设定 K t h r e s h o l d = 0.8 ⋅ K m a x K_{threshold} = 0.8 \cdot K_{max} Kthreshold=0.8Kmax,其中 K m a x K_{max} Kmax 为饱和密度。

实时预警机制
3. 滑动窗口法

  • 设定一个时窗(例如30分钟),在每个时间点 t t t 监测从第三点到第四点的交通流参数。
  1. 预警机制

当监测到密度 K ( t ) K(t) K(t) 超过 K t h r e s h o l d K_{threshold} Kthreshold,且这种状态持续超过10分钟,则系统发出预警。

If  K ( t ) > K t h r e s h o l d  for  t > t 0 + 10  minutes, then alert. \text{If } K(t) > K_{threshold} \text{ for } t > t_0 + 10 \text{ minutes, then alert.} If K(t)>Kthreshold for t>t0+10 minutes, then alert.

M/G/1 排队理论应用
5. 模型构建

  • 假设车辆到达过程遵循泊松过程,服务时间服从任意分布,建立M/G/1排队模型。
  • 到达率( λ \lambda λ)和服务率($\mu\))的定义:

λ = Q ( t ) L \lambda = \frac{Q(t)}{L} λ=LQ(t)

μ = 1 E [ S ] \mu = \frac{1}{E[S]} μ=E[S]1

其中 E [ S ] E[S] E[S] 为车辆通过某路段的平均服务时间。

  1. 拥堵概率计算

    • 使用M/G/1排队理论,计算系统的稳态性能指标,如平均排队长度 L q L_q Lq 和平均等待时间 W q W_q Wq

    L q = λ 2 ⋅ E [ S 2 ] 2 ( 1 − ρ ) L_q = \frac{\lambda^2 \cdot E[S^2]}{2(1 - \rho)} Lq=2(1ρ)λ2E[S2]

    W q = L q λ W_q = \frac{L_q}{\lambda} Wq=λLq

    其中 ρ = λ μ \rho = \frac{\lambda}{\mu} ρ=μλ 为系统利用率。

(3) 模型有效性验证
  1. 数据对比

    • 将模型的预警时间点与实际交通数据对比,记录预警的准确性。
    • 统计误报率(False Positive Rate)和漏报率(False Negative Rate)。
  2. 指标评估

    • 使用准确率(Precision)、召回率(Recall)和F1分数进行模型性能评估。
    • 设定预警模型的有效性标准。
python代码实现
import cv2
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import poisson

# 读取视频数据并计算交通流参数
def read_video_data(video_file):
    cap = cv2.VideoCapture(video_file)
    vehicle_count = []
    frame_count = 0

    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        frame_count += 1
        # 假设每帧处理逻辑已经实现,车辆计数放入vehicle_count中
        # vehicle_count.append(process_frame(frame))  # 需要实现process_frame方法
        
    cap.release()
    return vehicle_count

# 计算流量、密度和速度
def calculate_traffic_parameters(vehicle_counts, road_length, delta_t):
    flow = [count / delta_t for count in vehicle_counts]
    density = [count / road_length for count in vehicle_counts]
    speed = [flow[i] / density[i] if density[i] > 0 else 0 for i in range(len(flow))]
    return flow, density, speed

# 拥堵预警模型
def congestion_warning(density, threshold, duration):
    alert_times = []
    for i in range(len(density)):
        if density[i] > threshold:
            if all(density[j] > threshold for j in range(i, min(i + duration, len(density)))):
                alert_times.append(i)
    return alert_times

# M/G/1排队模型计算
def mg1_queue_model(arrival_rate, service_rate):
    rho = arrival_rate / service_rate
    Lq = (arrival_rate**2) / (2 * service_rate * (1 - rho))
    Wq = Lq / arrival_rate
    return Lq, Wq

# 主函数
def main(video_files, road_length, delta_t, congestion_threshold, warning_duration):
    all_vehicle_counts = []
    
    for video_file in video_files:
        vehicle_counts = read_video_data(video_file)
        all_vehicle_counts.append(vehicle_counts)

    flow, density, speed = zip(*[calculate_traffic_parameters(counts, road_length, delta_t) for counts in all_vehicle_counts])
    
    for d in density:
        alerts = congestion_warning(d, congestion_threshold, warning_duration)
        print(f"Alerts for density: {alerts}")

    # 示例参数
    arrival_rate = np.mean(flow)
    service_rate = 1.0  # 假设的服务率
    Lq, Wq = mg1_queue_model(arrival_rate, service_rate)
    
    print(f"Average queue length (Lq): {Lq}, Average waiting time (Wq): {Wq}")
    
    # 绘制流量、密度和速度变化图
    plt.figure(figsize=(15, 5))
    plt.subplot(1, 3, 1)
    plt.plot(flow)
    plt.title('Traffic Flow')
    plt.subplot(1, 3, 2)
    plt.plot(density)
    plt.title('Traffic Density')
    plt.subplot(1, 3, 3)
    plt.plot(speed)
    plt.title('Traffic Speed')
    plt.tight_layout()
    plt.show()

# 设置参数并运行主函数
if __name__ == "__main__":
    video_files = ["video1.mp4", "video2.mp4", "video3.mp4", "video4.mp4"]
    road_length = 5000  # 路段长度
    delta_t = 1  # 时间间隔
    congestion_threshold = 0.8  # 拥堵阈值
    warning_duration = 10  # 持续时间
    main(video_files, road_length, delta_t, congestion_threshold, warning_duration)

问题2详细解答过程

1. 模型构建

目标

  • 建立一个模型,为高速公路应急车道的临时启用提供决策支持,以最小化交通拥堵的影响,优化通行效率。

决策变量

  • 设定决策变量 x x x,表示是否启用应急车道:

    x = { 1 启用应急车道 0 不启用应急车道 x = \begin{cases} 1 & \text{启用应急车道} \\ 0 & \text{不启用应急车道} \end{cases} x={10启用应急车道不启用应急车道

参数定义

  • Q ( t ) Q(t) Q(t):在时间 t t t 的流量(单位:辆/分钟)。
  • K ( t ) K(t) K(t):在时间 t t t 的密度(单位:辆/km)。
  • V ( t ) V(t) V(t):在时间 t t t 的速度(单位:km/h)。
  • C C C:道路的通行能力(单位:辆/分钟)。
  • T a v g T_{avg} Tavg:车辆的平均通过时间(单位:分钟)。
  • T d e l a y T_{delay} Tdelay:车辆因拥堵造成的平均延迟时间(单位:分钟)。
2. 目标函数

最小化延迟

  • 目标是最小化总的延迟时间:

Minimize  T t o t a l = ∑ i T d e l a y i ⋅ N i \text{Minimize } T_{total} = \sum_{i} T_{delay}^i \cdot N_i Minimize Ttotal=iTdelayiNi

其中 N i N_i Ni 为在第 i i i 个时间段内受到拥堵影响的车辆数。

3. 约束条件

流量与密度约束

  • 应急车道启用的情况下,流量与密度之间的关系可以表示为:

Q ( t ) = K ( t ) ⋅ V ( t ) Q(t) = K(t) \cdot V(t) Q(t)=K(t)V(t)

通行能力约束

  • 道路通行能力限制:

Q ( t ) ≤ C Q(t) \leq C Q(t)C

K ( t ) K(t) K(t) 超过某个阈值(如 K t h r e s h o l d K_{threshold} Kthreshold)时,考虑启用应急车道。

延迟计算

  • 在不启用应急车道的情况下,延迟时间可以通过流量和通行能力的关系得到:

T d e l a y = max ⁡ ( 0 , K ( t ) C − 1 ) ⋅ T a v g T_{delay} = \max\left(0, \frac{K(t)}{C} - 1\right) \cdot T_{avg} Tdelay=max(0,CK(t)1)Tavg

应急车道启用条件

  • 设定条件,当流量接近通行能力时,启用应急车道的决策变量可以表示为:

x = { 1 if  Q ( t ) ≥ α C 0 otherwise x = \begin{cases} 1 & \text{if } Q(t) \geq \alpha C \\ 0 & \text{otherwise} \end{cases} x={10if Q(t)αCotherwise

其中 α \alpha α 为阈值系数(例如 0.8)。

4. 决策支持系统

模型实施

  • 结合实时监测的数据(流量、密度、速度),使用线性规划或整数规划技术求解:

    Find  x ∗ = arg ⁡ min ⁡ T t o t a l \text{Find } x^* = \arg\min T_{total} Find x=argminTtotal

反馈机制

  • 启用应急车道后,实时监测新流量 Q n e w ( t ) Q_{new}(t) Qnew(t) 和密度 K n e w ( t ) K_{new}(t) Knew(t),更新延迟时间 T d e l a y T_{delay} Tdelay,根据情况调整决策变量 x x x
5. 模型有效性评估

效果评估指标

  • 通过对比启用应急车道前后的平均延迟时间、交通流量变化等指标,评估模型的有效性:

Efficiency Gain = T d e l a y , b e f o r e − T d e l a y , a f t e r T d e l a y , b e f o r e \text{Efficiency Gain} = \frac{T_{delay, before} - T_{delay, after}}{T_{delay, before}} Efficiency Gain=Tdelay,beforeTdelay,beforeTdelay,after

统计分析

  • 收集数据,计算各项指标的均值、方差和变化趋势,分析应急车道启用对缓解交通拥堵的作用。
python代码实现
import numpy as np
import pandas as pd
from scipy.optimize import linprog
import matplotlib.pyplot as plt

# 假设数据
def generate_traffic_data(num_time_slots):
    np.random.seed(0)
    flow = np.random.randint(50, 150, size=num_time_slots)
    density = np.random.uniform(0.1, 0.7, size=num_time_slots)
    return flow, density

# 参数设置
road_length = 5000  # 路段长度(米)
delta_t = 1  # 时间间隔(分钟)
capacity = 100  # 道路通行能力(辆/分钟)
alpha = 0.8  # 启用应急车道的阈值系数
avg_delay_time = 5  # 平均通过时间(分钟)

# 延迟计算
def calculate_delay(flow):
    delay = np.maximum(0, (flow / capacity - 1) * avg_delay_time)
    return delay

# 优化模型
def emergency_lane_decision(flow, density):
    num_time_slots = len(flow)
    total_delay = calculate_delay(flow)

    c = total_delay
    A_ub = np.zeros((num_time_slots, num_time_slots))
    b_ub = np.zeros(num_time_slots)

    for i in range(num_time_slots):
        A_ub[i, i] = 1
        if flow[i] >= alpha * capacity:
            b_ub[i] = 1  # 启用应急车道的约束条件

    bounds = [(0, 1) for _ in range(num_time_slots)]
    
    result = linprog(c, A_ub=A_ub, b_ub=b_ub, bounds=bounds, method='highs')
    
    return result

# 主函数
def main():
    num_time_slots = 60  # 假设有60个时间段
    flow, density = generate_traffic_data(num_time_slots)
    
    result = emergency_lane_decision(flow, density)

    print("Optimization Result:")
    if result.success:
        print("Optimal Decision Variables (x):")
        print(result.x)
        print("Total Delay Reduction:", sum(result.x * calculate_delay(flow)))
    else:
        print("Optimization failed.")

    # 可视化
    plt.figure(figsize=(12, 6))
    plt.plot(flow, label='Traffic Flow', color='blue')
    plt.plot(density * capacity, label='Density Capacity', color='orange', linestyle='--')
    plt.axhline(y=alpha * capacity, color='red', linestyle='--', label='Emergency Lane Threshold')
    plt.title('Traffic Flow and Density')
    plt.xlabel('Time Slots')
    plt.ylabel('Vehicles')
    plt.legend()
    plt.show()

if __name__ == "__main__":
    main()

问题3详细解答过程

1. 模型构建

目标

  • 设计一个实时决策模型,根据交通流监测数据自动判断是否需要启用应急车道,以最小化交通拥堵和延迟。

决策变量

  • 设定决策变量 x x x,表示是否启用应急车道:

    x = { 1 启用应急车道 0 不启用应急车道 x = \begin{cases} 1 & \text{启用应急车道} \\ 0 & \text{不启用应急车道} \end{cases} x={10启用应急车道不启用应急车道

输入参数

  • Q ( t ) Q(t) Q(t):在时间 t t t 的流量(单位:辆/分钟)。
  • K ( t ) K(t) K(t):在时间 t t t 的密度(单位:辆/km)。
  • V ( t ) V(t) V(t):在时间 t t t 的速度(单位:km/h)。
  • C C C:道路的通行能力(单位:辆/分钟)。
  • T a v g T_{avg} Tavg:车辆的平均通过时间(单位:分钟)。
  • T d e l a y T_{delay} Tdelay:车辆因拥堵造成的平均延迟时间(单位:分钟)。
  • θ \theta θ:拥堵阈值,决定何时启用应急车道(例如,密度超过 K t h r e s h o l d K_{threshold} Kthreshold)。
2. 目标函数

延迟最小化

  • 目标是最小化整体交通延迟:

    Minimize  T t o t a l = ∑ i T d e l a y i ⋅ N i \text{Minimize } T_{total} = \sum_{i} T_{delay}^i \cdot N_i Minimize Ttotal=iTdelayiNi

其中 N i N_i Ni 是在第 i i i 个时间段内受到拥堵影响的车辆数。

3. 约束条件

流量与密度约束

  • 在启用应急车道时,流量与密度之间的关系可以表示为:

    Q ( t ) = K ( t ) ⋅ V ( t ) Q(t) = K(t) \cdot V(t) Q(t)=K(t)V(t)

通行能力约束

  • 道路通行能力限制:

    Q ( t ) ≤ C Q(t) \leq C Q(t)C

K ( t ) K(t) K(t) 超过阈值时,考虑启用应急车道。

延迟计算

  • 在不启用应急车道的情况下,延迟时间可以通过流量和通行能力的关系得到:

    T d e l a y = max ⁡ ( 0 , K ( t ) C − 1 ) ⋅ T a v g T_{delay} = \max\left(0, \frac{K(t)}{C} - 1\right) \cdot T_{avg} Tdelay=max(0,CK(t)1)Tavg

4. 决策规则

实时决策规则

  • 设定规则:
  1. 监测数据更新:实时获取流量 Q ( t ) Q(t) Q(t)、密度 K ( t ) K(t) K(t) 和速度 V ( t ) V(t) V(t) 的数据。
  2. 判断条件:若 K ( t ) > K t h r e s h o l d K(t) > K_{threshold} K(t)>Kthreshold,并且 Q ( t ) ≥ θ C Q(t) \geq \theta C Q(t)θC,则启用应急车道 x = 1 x = 1 x=1
  3. 延迟监测:在启用应急车道后,持续监测交通流的延迟情况。
5. 模型实施与反馈

动态调整

  • 在应急车道启用后,实时更新流量、密度和延迟数据,依据新数据动态调整决策变量 x x x

模型验证

  • 通过历史数据和模拟结果验证模型的有效性。对比启用应急车道前后的延迟、流量和密度,评估决策的合理性:

    Efficiency Gain = T d e l a y , b e f o r e − T d e l a y , a f t e r T d e l a y , b e f o r e \text{Efficiency Gain} = \frac{T_{delay, before} - T_{delay, after}}{T_{delay, before}} Efficiency Gain=Tdelay,beforeTdelay,beforeTdelay,after

python代码实现
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 假设数据生成函数
def generate_traffic_data(num_time_slots):
    np.random.seed(0)
    flow = np.random.randint(50, 150, size=num_time_slots)
    density = np.random.uniform(0.1, 0.7, size=num_time_slots)
    return flow, density

# 参数设置
road_length = 5000
capacity = 100
avg_delay_time = 5
K_threshold = 0.5
theta = 0.8

# 延迟计算
def calculate_delay(flow):
    delay = np.maximum(0, (flow / capacity - 1) * avg_delay_time)
    return delay

# 决策函数
def emergency_lane_decision(flow, density):
    num_time_slots = len(flow)
    decisions = np.zeros(num_time_slots)

    for t in range(num_time_slots):
        if density[t] > K_threshold and flow[t] >= theta * capacity:
            decisions[t] = 1

    return decisions

# 主函数
def main():
    num_time_slots = 60
    flow, density = generate_traffic_data(num_time_slots)

    decisions = emergency_lane_decision(flow, density)
    delays = calculate_delay(flow)

    print("Flow Data:", flow)
    print("Density Data:", density)
    print("Decisions (1:启用应急车道, 0:不启用):", decisions)
    print("Delays:", delays)

    plt.figure(figsize=(12, 6))
    plt.plot(flow, label='Traffic Flow', color='blue')
    plt.plot(density * capacity, label='Density Capacity', color='orange', linestyle='--')
    plt.axhline(y=K_threshold * capacity, color='red', linestyle='--', label='Density Threshold')
    plt.title('Traffic Flow and Density with Emergency Lane Decisions')
    plt.xlabel('Time Slots')
    plt.ylabel('Vehicles')
    plt.legend()
    plt.show()

if __name__ == "__main__":
    main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 项目实战4-无缝轮播图

养成好习惯,先赞后看,感谢对作者大大的支持 一、话不多说,直接上效果图: 完整视频展示链接如下: https://item.taobao.com/item.htm?ftt&id833405684191 二、实现思路 HTML结构 文档头部设置:定义…

TAPD 卓越版

一、版本概述 TAPD 卓越版提供 项目协同生态管理 解决方案,适合小团队轻量协作。TAPD 卓越版在专业版基础上增加任务、甘特图、协公协同模块三大应用,同时项目数上限增加至200个,能够帮助团队更高效协作、快速沟通,实时管理工作进…

京东方数字化研发部部长吕志超受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 京东方科技集团数字化研发部部长吕志超先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“项目经理的领导力破局之路”。大会将于10月26-27日在北京举办,主题为&am…

力扣之182.查找重复的电子邮箱

文章目录 1. 182.查找重复的电子邮箱1.1 题干1.2 准备数据1.3 解法1.4 结果截图 1. 182.查找重复的电子邮箱 1.1 题干 表: Person -------------------- | Column Name | Type | -------------------- | id | int | | email | varchar | -------------------- id 是该表的主…

2024华为杯研赛D题分析

2024华为杯研究生数学建模D题分析如下,完整版本在文末名片

常见排序(C语言版)

1.排序的概念及其应用 1.1排序的概念 排序:​ 在计算机科学与数学中,一个排序算法(英语:Sorting algorithm)是一种能将一串资料依照特定排序方式排列的算法。 稳定性:假定在待排序的记录序列中&#xff…

Linux基础3-基础工具4(git),冯诺依曼计算机体系结构

上篇文章:Linux基础3-基础工具3(make,makefile,gdb详解)-CSDN博客 本章重点: 1. git简易使用 2. 冯诺依曼计算机体系结构介绍 目录 一. git使用 1.1 什么是git? 1.2 git发展史 1.3 git创建仓库 1.4 git命令操作 二. 冯诺依…

基于Pytorch框架的深度学习MODNet网络精细人像分割系统源码

第一步:准备数据 人像精细分割数据,可分割出头发丝,为PPM-100开源数据 第二步:搭建模型 MODNet网络结构如图所示,主要包含3个部分:semantic estimation(S分支)、detail prediction…

pyqt瀑布流布局

最近研究瀑布流布局,发现都是收费的,所以只能自己写算法写布局。 所以啥都不说直接上代码 ImageLabel 参考 pyqt5 QLabel显示网络图片或qfluentwidgets官网 代码 import math import sys from pathlib import Pathfrom PyQt5.Qt import * from qflue…

传统美业通过小魔推短视频矩阵系统,实现逆势增长?

许多美甲店在经营过程中常常陷入一个误区:他们认为自己缺少的是客户,但实际上,他们真正缺少的是有效的营销策略,美甲店经营者普遍面临的两大难题包括: 1. 高客户流失率: 据研究显示,约70%的顾…

如何成立一家自己的等级保护测评机构?需要哪些条件?有哪些要求?

给大家的福利,点击下方蓝色字 即可免费领取↓↓↓ 🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 各省、自治区、直辖市公安厅、局网络安全保卫总队,新疆生产建设兵团公安局网络安…

SpringBoot学习指南

文章目录 一、为什么要学习SpringBoot二、SpringBoot介绍2.1 约定优于配置2.2 SpringBoot中的约定三、SpringBoot快速入门3.1 快速构建SpringBoot3.1.1 选择构建项目的类型3.1.2 项目的描述3.1.3 指定SpringBoot版本和需要的依赖3.1.4 导入依赖3.1.5 编写了Controller3.1.6 测试…

机器翻译之Bahdanau注意力机制在Seq2Seq中的应用

目录 1.创建 添加了Bahdanau的decoder 2. 训练 3.定义评估函数BLEU 4.预测 5.知识点个人理解 1.创建 添加了Bahdanau的decoder import torch from torch import nn import dltools#定义注意力解码器基类 class AttentionDecoder(dltools.Decoder): #继承dltools.Decoder写…

为什么年轻人都热衷找搭子,而不是找对象?

在繁华的都市中,有一个名叫晓悦的年轻人。晓悦每天穿梭于忙碌的工作和快节奏的生活之间,渐渐地,她发现身边的朋友们都开始找起了 “搭子”。 有一天,晓悦结束了一天疲惫的工作,坐在咖啡店里,看着窗外匆匆而…

在SpringBoot项目中利用Redission实现布隆过滤器(布隆过滤器的应用场景、布隆过滤器误判的情况、与位图相关的操作)

文章目录 1. 布隆过滤器的应用场景2. 在SpringBoot项目利用Redission实现布隆过滤器3. 布隆过滤器误判的情况4. 与位图相关的操作5. 可能遇到的问题(Redission是如何记录布隆过滤器的配置参数的)5.1 问题产生的原因5.2 解决方案5.2.1 方案一:…

DBeaver启动报错 Faild to load the JNI shared library

DBeaver启动报错 Faild to load the JNI shared library 问题现象 安装完成后,启动dbeaver报错 查看版本为64位版本,JAVA也为64为版本 dbeaver版本 java版本 解决 在dberver.ini添加指定配置,即可启动成功

msvcp100.dll是什么意思?msvcp100.dll丢失有什么可靠的解决方法

当我们在电脑中试图启动某些程序或游戏时,可能会遇到一个错误消息:"程序无法启动,因为计算机缺少msvcp100.dll"。其实遇到这种情况是非常的常见的,只要你是经常使用电脑的人,我们要解决它也非常的简单&#…

工作中遇到的问题总结(1)

文章目录 第一题问题描述解决思路 第二题问题描述解决思路核心大表如何优化数据迁移过程是怎么样的如何将流量从旧系统迁移到新系统上 第三题问题描述解决思路 第四题问题描述解决思路方案一:双写机制方案二:基于时间戳的分流机制方案三:灰度…

数据结构之线性表——LeetCode:707. 设计链表,206. 反转链表,92. 反转链表 II

707. 设计链表 题目描述 707. 设计链表 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则…

【滑动窗口】算法总结

文章目录 滑动窗口算法总结1.暴力求解vs滑动窗口2.需要注意的细节问题 2.滑动窗口的基本模板1.非固定窗口大小的滑动窗口2.固定窗口大小的滑动窗口细节 滑动窗口算法总结 1.暴力求解vs滑动窗口 遇到那些可以转化成一个子数组的长度的问题时,往往需要用到双指针。 …