【Kaggle】Identify Contrails to Reduce Global Warming 比赛数据集的可视化(含源代码)
一、数据简单解读
卫星图像最初来自:
https://www.goes-r.gov/spacesegment/abi.html
高级基线成像仪是GOES-R系列中用于对地球天气、海洋和环境进行成像的主要仪器。ABI用16个不同的光谱波段观察地球(上一代GOES只有<>个),包括两个可见光通道,四个近红外通道和十个红外通道。模型和工具使用这些不同的通道(波长)来指示地球表面或大气中的各种元素,例如树木,水,云,水分或烟雾。
使用双线性重采样对原始全盘图像进行重新投影以生成局部场景图像。 由于在时间背景下更容易识别尾迹,因此提供了一系列以 10 分钟为间隔的图像。 每个示例仅包含一个标记帧。
从我们的预印本中了解有关数据集的更多信息:
https://arxiv.org/abs/2304.02122
在每个由 {record_id} 命名的子目录中,提供了与单个示例相对应的 numpy .npy 格式的二进制文件:
band_{08-16}.npy:
大小为 H x W x T 的数组,其中 T = n_times_before + n_times_after + 1,表示序列中图像的数量。 标记帧之前和之后分别有 n_times_before 和 n_times_after 图像。 在我们的数据集中,所有示例的 n_times_before=4 和 n_times_after=3。 每个波段代表不同波长的红外通道,并根据校准参数转换为亮度温度。 文件名中的数字对应于 GOES-16 ABI 带编号。 ABI 频段的详细信息可在此处找到。
human_individual_masks.npy:
大小为 H x W x 1 x R 的数组。每个示例都由 R 个单独的人类标记器标记。 R 并非所有样本都相同。 带标签的掩模的值为 0 或 1,对应于 band_{08-16}.npy 中的第 (n_times_before+1) 个图像。 它们仅在训练集中可用。
human_pixel_masks.npy:
大小为 H x W x 1 的数组,包含二进制真实值。 如果一个像素被超过一半的标记者标记为轨迹像素,则在评估中将其视为轨迹像素。
{train/validation}_metadata.json:包含重现卫星图像的时间戳和投影参数。
二、可视化代码解读
import os
import numpy as np
from matplotlib import animation
import matplotlib.pyplot as plt
from IPython import display
import os:
导入用于操作操作系统功能的模块,例如文件和目录操作。
import numpy as np:
导入NumPy库并将其命名为np,用于处理数值计算和数组操作。
from matplotlib import animation:
导入matplotlib库中的animation模块,该模块用于创建动画效果。
import matplotlib.pyplot as plt:
导入matplotlib库中的pyplot模块,并将其命名为plt,用于绘制图形。
from IPython import display:
导入IPython库中的display模块,用于在IPython环境中显示图像和动画。
这段代码主要用于设置动画环境的基本组件。
BASE_DIR = '/kaggle/input/google-research-identify-contrails-reduce-global-warming/train'
N_TIMES_BEFORE = 4
record_id = '1704010292581573769'with open(os.path.join(BASE_DIR, record_id, 'band_11.npy'), 'rb') as f:band11 = np.load(f)
with open(os.path.join(BASE_DIR, record_id, 'band_14.npy'), 'rb') as f:band14 = np.load(f)
with open(os.path.join(BASE_DIR, record_id, 'band_15.npy'), 'rb') as f:band15 = np.load(f)
with open(os.path.join(BASE_DIR, record_id, 'human_pixel_masks.npy'), 'rb') as f:human_pixel_mask = np.load(f)
with open(os.path.join(BASE_DIR, record_id, 'human_individual_masks.npy'), 'rb') as f:human_individual_mask = np.load(f)
这段代码主要是加载一些数据文件,其中包括图像数据和遮罩数据。让我逐行解释:
BASE_DIR = '/kaggle/input/google-research-identify-contrails-reduce-global-warming/train':
这是一个目录路径,表示数据文件所在的基本目录。这段代码可能是在Kaggle环境中运行的,用于指定数据文件的路径。
N_TIMES_BEFORE = 4:
这个变量似乎表示一个时间点之前的次数。
record_id = '1704010292581573769':
这个变量存储了一个记录的唯一标识符,用于访问特定的数据文件。
使用with open(…)语句,代码打开并加载了一系列的NumPy数组文件(.npy格式):
- band11 = np.load(f): 加载名为’band_11.npy’的文件内容到变量band11中。
- band14 = np.load(f): 加载名为’band_14.npy’的文件内容到变量band14中。
- band15 = np.load(f): 加载名为’band_15.npy’的文件内容到变量band15中。
- human_pixel_mask = np.load(f): 加载名为’human_pixel_masks.npy’的文件内容到变量human_pixel_mask中。
- human_individual_mask = np.load(f): 加载名为’human_individual_masks.npy’的文件内容到变量human_individual_mask中。
将条带组合成假彩色图像:
为了在 GOES 中查看轨迹,我们使用“ash”配色方案。 这种配色方案最初是为观察大气中的火山灰而开发的,但也可用于观察薄卷云,包括凝结尾迹。 在此配色方案中,尾迹在图像中显示为深蓝色。
请注意,我们在这里使用由 Kulik 等人开发的灰配色方案的修改版本,它使用针对尾迹调整的略有不同的频带和范围。
Ash Color Scheme:
https://eumetrain.org/sites/default/files/2020-05/RGB_recipes.pdf
_T11_BOUNDS = (243, 303)
_CLOUD_TOP_TDIFF_BOUNDS = (-4, 5)
_TDIFF_BOUNDS = (-4, 2)def normalize_range(data, bounds):"""Maps data to the range [0, 1]."""return (data - bounds[0]) / (bounds[1] - bounds[0])r = normalize_range(band15 - band14, _TDIFF_BOUNDS)
g = normalize_range(band14 - band11, _CLOUD_TOP_TDIFF_BOUNDS)
b = normalize_range(band14, _T11_BOUNDS)
false_color = np.clip(np.stack([r, g, b], axis=2), 0, 1)
这段代码执行了一些数据处理操作,用于生成一张伪彩色图像。让我为您解释每一步:
-
_T11_BOUNDS = (243, 303):
这是一个包含两个值的元组,表示T11(可能是某种温度测量)的范围。 -
_CLOUD_TOP_TDIFF_BOUNDS = (-4, 5):
这是另一个包含两个值的元组,表示云顶温度差的范围。 -
_TDIFF_BOUNDS = (-4, 2):
这是一个包含两个值的元组,表示温度差的范围。 -
normalize_range(data, bounds):
这个函数将数据映射到范围[0, 1]。它通过减去范围下界,然后除以范围的范围来进行归一化。 -
r = normalize_range(band15 - band14, _TDIFF_BOUNDS):
计算 band15 - band14,然后使用 normalize_range 函数将其映射到 _TDIFF_BOUNDS 范围内,得到一个代表温度差的归一化数组。 -
g = normalize_range(band14 - band11, _CLOUD_TOP_TDIFF_BOUNDS):
计算 band14 - band11,然后使用 normalize_range 函数将其映射到 _CLOUD_TOP_TDIFF_BOUNDS 范围内,得到一个代表云顶温度差的归一化数组。 -
b = normalize_range(band14, _T11_BOUNDS):
使用 normalize_range 函数将 band14 映射到 _T11_BOUNDS 范围内,得到一个代表T11的归一化数组。 -
false_color = np.clip(np.stack([r, g, b], axis=2), 0, 1):
这行代码将 r、g 和 b 数组堆叠成一个三维数组,然后使用 np.clip 将数组中的值限制在 [0, 1] 范围内,生成了一个代表伪彩色图像的数组 false_color。
总之,这段代码将一些输入数据(可能是与温度测量相关的数据)进行处理和归一化,然后将处理后的数据组合成一个伪彩色图像。该图像的每个通道分别代表不同的物理量,并且已经映射到了0到1的范围内。这种伪彩色图像通常用于可视化多通道数据。
可视化代码:
img = false_color[..., N_TIMES_BEFORE]plt.figure(figsize=(18, 6))
ax = plt.subplot(1, 3, 1)
ax.imshow(img)
ax.set_title('False color image')ax = plt.subplot(1, 3, 2)
ax.imshow(human_pixel_mask, interpolation='none')
ax.set_title('Ground truth contrail mask')ax = plt.subplot(1, 3, 3)
ax.imshow(img)
ax.imshow(human_pixel_mask, cmap='Reds', alpha=.4, interpolation='none')
ax.set_title('Contrail mask on false color image');
这段代码用于绘制图像和遮罩的可视化,包括伪彩色图像、人工像素遮罩和将遮罩叠加到伪彩色图像上。让我为您逐行解释:
img = false_color[…, N_TIMES_BEFORE]: 这一行代码从 false_color 数组中选择第 N_TIMES_BEFORE 个时间点的切片,表示为 img,然后使用这个切片绘制图像。
plt.figure(figsize=(18, 6)): 创建一个图像窗口,设置其大小为 (18, 6)。
创建三个子图,分别显示不同的图像和遮罩:
ax = plt.subplot(1, 3, 1): 创建一个子图,位置为 (1, 3, 1),表示一行三列中的第一个位置。
ax.imshow(img): 在该子图中显示 img,即伪彩色图像。
ax.set_title(‘False color image’): 设置子图标题为 ‘False color image’。
ax = plt.subplot(1, 3, 2): 创建第二个子图,位置为 (1, 3, 2)。
ax.imshow(human_pixel_mask, interpolation=‘none’): 在该子图中显示人工像素遮罩,interpolation=‘none’ 禁用插值。
ax.set_title(‘Ground truth contrail mask’): 设置子图标题为 ‘Ground truth contrail mask’。
ax = plt.subplot(1, 3, 3): 创建第三个子图,位置为 (1, 3, 3)。
ax.imshow(img): 在该子图中显示 img,即伪彩色图像。
ax.imshow(human_pixel_mask, cmap=‘Reds’, alpha=.4, interpolation=‘none’): 将人工像素遮罩以红色叠加在伪彩色图像上,alpha 参数控制透明度,interpolation=‘none’ 禁用插值。
ax.set_title(‘Contrail mask on false color image’): 设置子图标题为 ‘Contrail mask on false color image’。
这段代码通过三个子图将伪彩色图像、遮罩和叠加效果进行了可视化,可以更好地理解数据和分析结果。每个子图都有自己的标题和可视化设置。
n = human_individual_mask.shape[-1]
plt.figure(figsize=(16, 4))
for i in range(n):plt.subplot(1, n, i+1)plt.imshow(human_individual_mask[..., i], interpolation='none')
这段代码用于绘制一系列人工个体遮罩的可视化,将每个个体的遮罩以列的形式显示在一个大图中。让我为您逐行解释:
n = human_individual_mask.shape[-1]: 这行代码计算了 human_individual_mask 数组的最后一个维度的大小,即个体遮罩的数量。
plt.figure(figsize=(16, 4)): 创建一个图像窗口,设置其大小为 (16, 4)。
使用循环迭代遍历每个个体的遮罩,并在大图中以列的形式显示:
for i in range(n): 使用循环迭代 0 到 n-1。
plt.subplot(1, n, i+1): 创建一个子图,位置为 (1, n, i+1),表示一行 n 列中的第 i+1 位置。
plt.imshow(human_individual_mask[…, i], interpolation=‘none’): 在该子图中显示第 i 个个体的遮罩,禁用插值。
这段代码生成一个大图,其中每一列显示一个个体的遮罩。每个子图的标题和可视化设置都可以根据需要进行调整,以便更好地理解和分析个体遮罩的数据。
# Animation
fig = plt.figure(figsize=(6, 6))
im = plt.imshow(false_color[..., 0])
def draw(i):im.set_array(false_color[..., i])return [im]
anim = animation.FuncAnimation(fig, draw, frames=false_color.shape[-1], interval=500, blit=True
)
plt.close()
display.HTML(anim.to_jshtml())
这段代码创建了一个动画,显示了伪彩色图像序列的逐帧变化。让我逐行为您解释:
fig = plt.figure(figsize=(6, 6)): 创建一个图像窗口,大小为 (6, 6)。
im = plt.imshow(false_color[…, 0]): 在图像窗口中显示 false_color 数组的第一帧,并将 imshow 返回的对象存储在变量 im 中。
def draw(i): …: 定义一个函数 draw,该函数接受一个参数 i,表示帧的索引。在每一帧,该函数将更新 im 的图像数据为 false_color 数组的第 i 帧。
anim = animation.FuncAnimation(…): 使用 animation.FuncAnimation 创建动画对象。参数包括:
fig: 图像窗口对象。
draw: 更新每一帧图像的函数。
frames=false_color.shape[-1]: 帧数,使用 false_color 数组的最后一个维度。
interval=500: 每帧之间的间隔时间,单位为毫秒。
blit=True: 设置为 True 表示使用渲染优化技术(需要支持)。
plt.close(): 关闭之前创建的图像窗口,以避免不必要的显示。
display.HTML(anim.to_jshtml()): 将动画对象转换为HTML格式,并在IPython环境中显示动画。
总之,这段代码创建了一个动画,展示了伪彩色图像序列的逐帧变化。动画将在IPython环境中以HTML格式显示。您可以根据需要调整动画的参数,例如帧数、间隔时间等。
相关文章:
![](https://img-blog.csdnimg.cn/6be5dfc3efdd46a4b2345ae01b39066e.png)
【Kaggle】Identify Contrails to Reduce Global Warming 比赛数据集的可视化(含源代码)
一、数据简单解读 卫星图像最初来自: https://www.goes-r.gov/spacesegment/abi.html高级基线成像仪是GOES-R系列中用于对地球天气、海洋和环境进行成像的主要仪器。ABI用16个不同的光谱波段观察地球(上一代GOES只有<>个),…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring(12) BeanFactory 和 ApplicationContext 区别
目录 一、BeanFactory 和 ApplicationContext 区别?二、既然 Spring Boot 中使用的是 ApplicationContext 进行应用程序的启动和管理,那么 Spring Boot 会用到 BeanFactory 吗? 一、BeanFactory 和 ApplicationContext 区别? Bea…...
![](https://img-blog.csdnimg.cn/c25d74c781a7482c9a2375844d92e094.png)
git的日常使用
加入忽略列表:在.gitignore中加入忽略的文件,build/ 表示build文件夹下,*.jar 表示以jar结尾的,用换行符隔开将另一个分支合并到当前分支:git merge xxx冲突出现,可以看看这里:详解Git合并冲突—…...
![](https://img-blog.csdnimg.cn/d23a99e755da4b61a25aeb81f8f6fe10.png)
【Spring Boot】请求参数传json对象,后端采用(pojo)CRUD案例(102)
请求参数传json对象,后端采用(pojo)接收的前提条件: 1.pom.xml文件加入坐标依赖:jackson-databind 2.Spring Boot 的启动类加注解:EnableWebMvc 3.Spring Boot 的Controller接受参数采用:Reque…...
![](https://img-blog.csdnimg.cn/13ed975fb57248efb1e2ea75654dceae.png)
layui之layer弹出层的icon数字及效果展示
layer的icon样式 icon如果在信息提示弹出层值(type为0)可以传入0-6,icon与图标对应关系如下: 如果是加载层(type为3)可以传入0-2,icon与图标对应关系如下:...
![](https://img-blog.csdnimg.cn/9e6d0cd3e50c4670a3a8c09a68173c56.png)
Python selenium对应的浏览器chromedriver版本不一致
1、chrome和chromedriver版本不一致导致的,我们只需要升级下chromedriver的版本即可 浏览器版本查看 //打开google浏览器直接访问,查看浏览器版本 chrome://version/ 查看chromedriver的版本 //查看驱动版本 chromedriver chromedriver下载 可看到浏…...
![](https://img-blog.csdnimg.cn/2b518f6a22f24aecab1cca6da5c95d91.png)
Redis的安装方法与基本操作
目录 前言 一、REDIS概述 二、REDIS安装 1、编译安装 2.yum安装 三、Redis的目录结构 四、基础命令解析 五、在一台服务器上启动多个redis 六、数据库的基本操作 (一)登录数据库 (二)基础命令 七、Redis持久化 (一&…...
![](https://img-blog.csdnimg.cn/4af311ad70854cb8b38750dcbeb65629.png)
选读SQL经典实例笔记20_Oracle语法示例
1. 计算一年有多少天 1.1. sql select Days in 2005: ||to_char(add_months(trunc(sysdate,y),12)-1,DDD)as reportfrom dualunion allselect Days in 2004: ||to_char(add_months(trunc(to_date(01-SEP-2004),y),12)-1,DDD)from dual REPORT ----------------- Days in 200…...
![](https://www.ngui.cc/images/no-images.jpg)
JAVA细节/小技巧
一、 Callable类可以实现返回结果的多线程。实现Callable类,然后实例化一个对象传递给FutureTask,然后把FutureTask对象传递给Thread对象,执行start即可开始多线程。FutureTask对象执行get函数可以获得Callable类中call函数的返回值…...
![](https://img-blog.csdnimg.cn/img_convert/b55abb1e474e032a801f5079c02d6c14.png)
jmeter如何压测和存储
一、存储过程准备: 1、建立一个空表: 1 CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER ); 2、建立一个存储过程: 1 2 3 4 5 6 7 8 9 CREATE OR REPLACE PROCEDURE insert_test_data (n IN NUMBER) AS BEGIN --E…...
![](https://www.ngui.cc/images/no-images.jpg)
一个月学通Python(三十三):Python并发编程在爬虫中的应用
专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…...
![](https://img-blog.csdnimg.cn/1162b148dd1a4a36811e5a1bfa955bd6.png)
HCIP——STP
STP 一、STP概述二、二层环路带来的问题1、广播风暴问题2、MAC地址漂移问题3、多帧复制 三、802.1D生成树STP的BPDU1、配置BPDU2、RPC3、COST4、配置BPDU的工作过程5、TCN BPDU6、TCN BPDU的工作原理 四、STP的角色五、STP角色选举六、STP的接口状态七、接口状态的迁移八、STP的…...
![](https://img-blog.csdnimg.cn/bd78c648e2d3442587e8924913be1431.png)
【数据结构】“单链表”的练习题
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
![](https://img-blog.csdnimg.cn/896fb422c4a045fabda5b6093387269f.png)
项目实战 — 消息队列(5){统一硬盘操作}
前面已经使用数据库管理了交换机、绑定、队列,然后又使用了数据文件管理了消息。 那么,这里就创建一个类,讲之前的两个部分整合起来,对上层提供统一的一套接口,表示硬盘上存储的所有的类的信息。 /* * 用这个类来管理…...
![](https://img-blog.csdnimg.cn/13b9528ef63642f99c6eb70643315ad1.png)
【2.2】Java微服务:Hystrix的详解与使用
目录 分布式系统面临问题 Hystrix概念 Hystrix作用 降级 什么是降级 order服务导入Hystrix依赖(简单判断原则:谁调用远程谁加) 启动类添加注解 业务方法添加注解(冒号里填回调方法名,回调方法返回兜底数据&…...
![](https://www.ngui.cc/images/no-images.jpg)
【PYTHON】WebSocket服务端与客户端通信实现
目录 1 简介 2 WebSocket优点 3 前后端交互的方式 4 心跳机制和重连机制 5 后端代码 6 测试...
![](https://www.ngui.cc/images/no-images.jpg)
Runloop 的五种mode
1.runloop是一个事件驱动的循环,收到事件就去处理,没有事件就进入睡眠. 2.应用一启动主线程被创建后,主线程对应的runloop也被创建,runloop也保证了程序能够一直运行.之后创建的子线程默认是没有runloop的,只有当调用[NSRunLoop currentRunLoop]去获取的时候才被创建. 3.runloo…...
![](https://www.ngui.cc/images/no-images.jpg)
C++头文件使用精要
一、头文件包含顺序 根据《Google C 编程风格指南》,对于Foo.cpp,顺序推荐为: Foo.hC标准库C标准库其它库的头文件本工程的头文件 另外,在包含头文件时应该加上头文件所在工程的文件夹名,可区分重名文件。即假如你有…...
![](https://www.ngui.cc/images/no-images.jpg)
Flink之SideOutput(数据分流)
Flink在早期版本有一个split算子用来做数据分流使用的,但是在flink-1.12开始这个API就已经被删除了,在1.12版本以后我们是通过process算子来做数据分流的,这里就介绍一下如何使用prodess进行数据分流. 代码 import org.apache.flink.api.common.typeinfo.TypeInformation; im…...
![](https://img-blog.csdnimg.cn/b0d31364b7e740d9a61a1ad3866084c2.png)
Android Studio新版本logcat过滤说明
按包名过滤 //输入package:(输入一个p就会有提示的) ,后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考&#…...
![](https://www.ngui.cc/images/no-images.jpg)
carsim与matlab仿真
matlab2021a安装教程,亲测。 百度网盘: matlab2021a安装包 提取码:1223 CarSim2020安装教程, 亲测。 百度网盘: CarSim2020安装包 提取码:1223 ,破解可参考 b站视频...
![](https://www.ngui.cc/images/no-images.jpg)
rust里如何快速实现一个LRU 本地缓存?
LRU是Least Recently Used(最近最少使用)的缩写,是一种常见的缓存淘汰算法。LRU算法的基本思想是,当缓存空间已满时,优先淘汰最近最少使用的数据,以保留最常用的数据。 在计算机系统中,LRU算法…...
![](https://img-blog.csdnimg.cn/40ab896baebe454b9b3522b9ae19f0dd.png)
MQTT 订阅接收消息 mosquitto 方式
1 说明 采用 mosquitto 库,实现订阅主题,并接收消息。其中服务器有做限制,需要对应的 cilent id ,cafile 、certfile 、keyfile 等配置2 环境 采用ubuntu 直接编译调试 安装mosquitto 库 sudo apt install libmosquitto-dev su…...
![](https://img-blog.csdnimg.cn/f7007382116746d4b6674b2dca4b2163.png)
以mod_jk方式整合apache与tomcat(动静分离)
前言: 为什么要整合apache和tomcat apache对静态页面的处理能力强,而tomcat对静态页面的处理不如apache,整合后有以下好处 提升对静态文件的处理性能 利用 Web 服务器来做负载均衡以及容错 更完善地去升级应用程序 jk整合方式介绍&#…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot动态数据源切换
1)、就是将多个数据源全部注入到bean中,根据需要实现多数据源之间的切换。 2)、使用baomidou的DS注解。见文章DS注解实现数据源动态切换 com.baomidou dynamic-datasource-spring-boot-starter 3.5.1 ##设置默认的数据源或者数据源组,默认值…...
![](https://www.ngui.cc/images/no-images.jpg)
代码随想录训练营day14
101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 func isSymmetric(root *TreeNode) bool {if root nil{ return true}return judge(root.Left,root.Right) }func judge(lf *TreeNode , ri *TreeNode)bool{if lf nil && ri nil{ retu…...
![](https://www.ngui.cc/images/no-images.jpg)
功能测试进阶自动化测试如何摸清学习方向,少走弯路呢?
目录 抛开疑问,只做学术探讨 小白在想什么? 盖楼之前先打好地基,首先需要学习一门语言 语言入门后,正式踏上开始自动化成神之路,入门篇Selenium 玩腻了Selenium 开始接触自动化框架unittest/testNG 不满足于单元…...
![](https://www.ngui.cc/images/no-images.jpg)
检测前端是否可以ping通后端返回的ip地址
检测前端是否可以ping通后端返回的ip地址 前端检测是否可ping通ip地址(PC端)前端检测是否可ping通ip地址(uniapp小程序端) 前端检测是否可ping通ip地址(PC端) // 前端检测是否可ping通ip地址 ping…...
![](https://img-blog.csdnimg.cn/77ae16fe4e9e4537b4c9772996bf5b6b.jpeg)
SMART司马他法则(目标管理)
S代表具体(Specific),指绩效考核要切中特定的工作指标,不能笼统; M代表可度量(Measurable),指绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的; A代表可实现(Attainable)&…...
![](https://img-blog.csdnimg.cn/8af39143eaca471da142a9949367272d.png)
【LeetCode】删除并获得点数
删除并获得点数 题目描述算法分析编程代码空间优化 链接: 删除并获得点数 题目描述 算法分析 编程代码 class Solution { public:int deleteAndEarn(vector<int>& nums) {const int N 10001;int arr[N] {0};for(const auto& n : nums){arr[n]n;}vector<in…...
![](/images/no-images.jpg)
用asp做的大型网站/html网页制作app
原文出处:http://www.linuxidc.com/Linux/2013-02/79999.htm 1.安装Ubuntu12.xx(本人使用的是12.10,其他版本未测试) 2.配置java环境 下载jdk-6u34-linux-x64.bin(百度google),终端中执行安装&a…...
![](/images/no-images.jpg)
华润集团网站建设商/平台app开发制作
对于这一问题,相信不少人会理解为:我应当选择哪一种更好的编程语言?我应当选择哪一个软件框架?我应当进入哪一个软件行业子领域?等等。但这些都不是作者想问的。不论选择什么样的语言、库、框架乃至领域,我…...
![](/images/no-images.jpg)
wordpress支持拨打电话/河北百度seo关键词排名
我运行一个使用PF_RINGDNA进行捕包的程序,结果在程序运行结束后,我发现我退出不了DNA模式了!以前都是进入驱动PF_RING-aware中安装对应驱动就可以了,但是这里一直显示pfring in use 和ixgbe.ko in use ,那么࿰…...
![](http://d.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=5759793a5bdf8db1bc7b74623913f16c/d439b6003af33a87e26978b8c35c10385343b50f.jpg)
网站介绍模板/google图片搜索引擎入口
java eclipse如何显示行数 Eclipsejava编程语言专业回答liuyang0542015-05-18 18:35打开eclipse , 随便打开一个其中的代码 , 然后在窗口的左侧右键鼠标 选中show line numbers 就能显示行数了。 下图有说明 eclipse中查找和替换直接按快捷键 ctrl F …...
![](/images/no-images.jpg)
wordpress搭建多少钱/上海专业seo服务公司
。。。。。。。。...
![](/images/no-images.jpg)
国企网站建设合同/深圳网站设计公司
文章目录一.原型链机制1. 原型链的本质2. 引用类型的构造函数3. 基本类型的包装类二. 对象与属性1. 对象直接打点验证某个属性是否存在4. instanceof 运算符三. 继承1. 原型链继承2. 构造函数继承3. 组合继承一.原型链机制 1. 原型链的本质 只要是对象,一定有原型…...