备战蓝桥杯Day18 - 双链表

一、每日一题

蓝桥杯真题之工作时长

这个题写代码做的话很麻烦,而且我也不一定能写出来,所以我直接就是用的excel来计算的时间和。

使用excel的做法

1.先把文件中的时间复制到excel中。

2.把日期和时间分到两列。

分成两列的步骤:

选中要分列的数据(注意!只能选择一列,多列不可操作),在上面找到数据,再找到分列这个操作。

 点进去后选择分隔符号,点击下一步。

 只选择空格,不选择其他的,之后点击下一步。

 格式可以选择常规,也可以选择日期,没太大影响。

 最后点击完成即可。

最后得到的结果,不知道为什么后面会有0:00,但是不影响结果计算,主要是把时间单独分出一列来即可。

3.计算一天中上下班的时间差 

 在新的一列中这样写出计算公式,并得出结果,往下复制,excel会根据对应的单元格得出相应的数据,复制几个后,可以点右下角的加号向下拉,就能得出两个单元格的的差值,就是一天中上班的时间。

4.计算每天上班时间的和

5.换算成秒

计算出时间总和的时间单位为天,一天24*60*60s = 86400s。最后结果为5101913s。

在蓝桥杯官网提交结果后,运行成功通过。

 二、双链表

单链表只可以实现数据不断向前寻找,不可以向后寻找,为了提高效率,从而引出双链表。

双链表的每个节点有两个指针,一个指向后一个节点,一个指向前一个节点,这样既可以向前寻找数据,也可以向后寻找。

 双链表的初始化及基本操作。

class Node:  
    def __init__(self, data=None):  
        self.data = data  
        self.next = None  
        self.prev = None  
  
  
class DoublyLinkedList:  
    def __init__(self):  
        self.head = None  
  
    # 在链表末尾添加节点  
    def append(self, data):  
        if not self.head:  
            self.head = Node(data)  
        else:  
            new_node = Node(data)  
            current = self.head  
            while current.next:  
                current = current.next  
            current.next = new_node  
            new_node.prev = current  
  
    # 在链表开头添加节点  
    def prepend(self, data):  
        new_node = Node(data)  
        new_node.next = self.head  
        if self.head:  
            self.head.prev = new_node  
        self.head = new_node  
  
    # 删除指定数据的节点  
    def delete(self, data):  
        current = self.head  
        if current and current.data == data:  
            self.head = current.next  
            if self.head:  
                self.head.prev = None  
            return  
  
        while current and current.data != data:  
            current = current.next  
  
        if current.next:  
            current.next.prev = current.prev  
        if current.prev:  
            current.prev.next = current.next  
  
    # 打印链表  
    def print_list(self):  
        current = self.head  
        while current:  
            print(current.data, end=' ')  
            current = current.next  
        print()  
  
  
# 示例  
dll = DoublyLinkedList()  
dll.append(1)  
dll.append(2)  
dll.prepend(0)  
dll.print_list()  # 输出: 0 1 2  
dll.delete(1)  
dll.print_list()  # 输出: 0 2

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

让两个电脑通信的方法(TCP连接,UDP连接,C/S架构)

目录 TCP-面向连接UDP-面向无连接C/S架构服务器和客户端的工作过程C/S架构例子 让两个电脑通信的方法是 在C/S的基础上,采用TCP和UDP的方式连接 TCP-面向连接 UDP-面向无连接 C/S架构 服务器和客户端的工作过程 C/S架构例子 服务器与客户端通信的过程类似公司与客户…

【亚马逊云】跨AWS账号创建复制规则同步S3存储桶中的数据

文章目录 注意事项一、创建存储桶【创建方&接收方完成操作】二、上传数据至bucket-transmit待同步测试三、创建复制规则【创建方完成操作】四、接收复制的对象【接收方完成操作】五、创建复制任务【创建方操作】六、运行批处理操作【创建方完成操作】七、检查是否完成跨账号…

React UI框架Antd 以及 如何按需引入css样式配置

一、react UI框架Antd使用 1.下载模块 npm install antd -S 2.引入antd的样式 import ../node_modules/antd/dist/reset.css; 3.局部使用antd组件 import {Button, Calendar} from antd; import {PieChartTwoTone} from ant-design/icons; {/* 组件汉化配置 */} import l…

StarRocks——Stream Load 事务接口实现原理

目录 前言 一、StarRocks 数据导入 二、StarRocks 事务写入原理 三、InLong 实时写入StarRocks原理 3.1 InLong概述 3.2 基本原理 3.3 详细流程 3.3.1 任务写入数据 3.3.2 任务保存检查点 3.3.3 任务如何确认保存点成功 3.3.4 任务如何初始化 3.4 Exactly Once 保证…

go test用法(获取单元测试覆盖率)

go test用法(获取ut覆盖率) 为了提升系统的稳定性,一般公司都会对代码的单元测试覆盖率有一定要求。下面针对golang自带的测试命令go test做讲解。 1 命令 1.1 go test ./… (运行当前目录及所有子目录下的测试用例) …

【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务

这篇文章,主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务【知识星球】。 目录 一、Nginx配置WebSocket 1.1、Nginx配置内容 1.2、客户端请求地址 1.3、创建WebSocket测试工程 1.4、启动测试 1.5、WebSocket超时问题 1.5.1、设置超时时间 …

计算机网络——IPV4数字报

1. IPv4数据报的结构 本结构遵循的是RFC 791规范,介绍了一个IPv4数据包头部的不同字段。 1.1 IPv4头部 a. 版本(Version):指明了IP协议的版本,IPv4表示为4。 b. 头部长度(IHL, Internet Header Length&…

Adobe illustrator CEP插件调试

1.创建插件CEP面板,可以参考:http://blog.nullice.com/%E6%8A%80%E6%9C%AF/CEP-%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B/%E6%8A%80%E6%9C%AF-CEP-%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B-Adobe-CEP-%E6%89%A9%E5%B1%95%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8…

【Docker】安装及相关的命令

目录 一 Docker简介 1.1 是什么 1.2 优缺点 1.3 应用场景 1.4 安装 二 命令 2.1 Docker基本命令 2.2 Docker镜像命令 2.3 Docker容器命令 一 Docker简介 1.1 是什么 Docker是一个开源的应用容器引擎,它基于Go语言实现,并利用操作系统本身已有的…

LeetCode142. 环形链表 II刷题详解

今天力扣刷到了一个特别有意思的题目,于是就写了下面的题解来加深以下理解。 142. 环形链表 II - 力扣(LeetCode) 这个可以分为两大步去写,首先要判断链表是否有环,然后如果有环就去找到环的入口,没有环返…

【Vite】解决Vite http proxy error: Error: connect ECONNREFUSED

今天写bug,发现了这个问题 我经过我一晚上的搜索努力,在github上找到了解决办法,不得不说,交友网站还是很好用的。 参考 这一行是关键代码。 因为我连的是本地后台服务,所以最后配置成这样 server: {open: true,pro…

关于年化收益率的思考

近期,对于投资的年化收益率有一些思考,想着将这些思考整理一下,顺便也就记录在这里。 1. 计算方式 年化收益率常见的计算有三种:算数平均,几何平均,IRR。 1.1 算术平均 算数平均用于度量产品的回报率&a…

ChatGPT 正测试Android屏幕小组件;联想ThinkBook 推出透明笔记本电脑

▶ ChatGPT 测试屏幕小组件 近日 ChatGPT 正在测试 Android 平台上的屏幕小组件,类似于手机中的悬浮窗,按住 Android 手机主屏幕上的空白位置就可以调出 ChatGPT 的部件菜单。 菜单中提供了许多选项,包括文本、语音和视频查询的快捷方式&…

【Java设计模式】一、工厂模式、建造者模式、原型设计模式

文章目录 1、简单工厂模式2、工厂方法模式3、抽象工厂模式4、建造者模式5、原型设计模式 1、简单工厂模式 即由一个工厂决定创建哪一种产品类型的实例。 //抽象的课程类 public abstract class Course{//有一个制作课程的抽象方法public abstract void make(); }以上抽象类的…

袁庭新ES系列12节 | Elasticsearch高级查询操作

前言 上篇文章讲了关于Elasticsearch的基本查询操作。接下来袁老师为大家带来Elasticsearch高级查询部分相关的内容。Elasticsearch是基于JSON提供完整的查询DSL(Domain Specific Language:领域特定语言)来定义查询。因此,我们有…

SAP CAP(Cloud Application Programming)开发框架概述

CAP是什么 SAP云应用编程模型(CAP)是一个用于构建企业级应用的编程框架。它引导开发人员沿着经过验证的最佳实践的“黄金路径”以及丰富的开箱即用解决方案来构建应用。 与过度专注于技术细节相反,基于CAP的项目主要通过关注快速的业务实现而…

【virtual Box】功能速通:安装 Windows 和 Ubuntu

文章目录 一、虚拟机1.1 概述1.2 virtual box概述 二、新建虚拟机、删除、注册三、虚拟机内部设置3.1 安装增强功能驱动3.2 分辨率问题3.3 网络链接方式 一、虚拟机 1.1 概述 虚拟机(Virtual Machine,VM)是一种软件实现的计算机系统&#x…

pdf转word文档怎么转?分享4种转换方法

pdf转word文档怎么转?在日常工作中,我们经常遇到需要将PDF文件转换为Word文档的情况。无论是为了编辑、修改还是为了重新排版,将PDF转为Word都显得尤为重要。那么,PDF转Word文档怎么转呢?今天,就为大家分享…

js中的任务处理机制

众所周知(不知道的话去查),js是以单线程的方式执行的,在执行的过程中,某一时刻上只能执行一个任务,也就是说,我们写好了代码后执行的时候,程序是根据代码从上到下依次排队执行,只有上一个任务执…

ABAP - Function ALV 10 增加表头

有些需求会要求在ALV增加表头,大概长这样 REUSE_ALV_GRID_DISPLAY_LVC制造表头只需要加个传入参数I_CALLBACK_HTML_TOP_OF_PAGE并作处理就好了。 TYPES:BEGIN OF ty_data,sel TYPE char1,light TYPE iconname,name TYPE char10,score TYPE p LENGTH 2 DECIMA…