风之所向,吾之所往

GEEK

极客——次时代博客

控制台

104. 二叉树的最大深度

问题描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 ...

142. 环形链表 II

问题描述 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 解决方案 class Soluti...

Python单例模式

单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信...

MySQL基础架构

架构示意图 Server层 连接器 建立连接 长连接 建立连接的过程比较复杂,应该减少建立连接的动作,尽量使用长连接 全部启用长连接后可能会...

160. 相交链表

问题描述 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表**:** 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 ...

MySQL更新语句与redolog、binlog

...

19. 删除链表的倒数第N个节点

问题描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解决...

布隆过滤器在海量数据去重验证中应用

引子 今天一个技术群里的小伙伴提了这样一个问题: 你爬虫的时候假如有海量的url,怎么保证不重复? 他说是之前在面试中遇到了这样的问题,大家第一时间想到的都差不多,用集合这种数据结构不久可以轻松的解决这个问题吗? 然而事情似乎没有这么简单,因为及时是存在Redis中,在海量数据的前提下,直接使...

RabbitMQ防止数据丢失的策略

首先明确一点 一条消息的传送流程:生产者->MQ->消费者 所以有三个地方都会丢失数据: 生产者发送给MQ的途中出现网络问题 MQ自己没保管好弄丢了 消费者拿到数据后出错了没有最终完成任务 依次分析 1)生产者弄丢了数据 生产者将数据发送到rabbitmq的时候...

Celery在Django应用中的工作机制

...

Golang网络编程(一)

1. 前言 最近工作当中用Python写了非常多的socket代码,用于和底层的设备之间进行交互。然而我的方式比较原始,自己在一个基础的socket上不断地进行扩展。总所周知,Python的网络编程界有一个大名鼎鼎的Twisted框架,Twisted是已经一个维护了十余年的成熟项目,基于事件驱动设...

进程间通信归纳

进程间通信(IPC,InterProcess Communication)**是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。 一、管道...

21. 合并两个有序链表

问题描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 解决方案 def mergeTwoLists(l1, l2): # 处理边界情况(l1或l...

Golang网络编程(二):并发Server-Client

一、概述 上一篇实现了一个server和client通信,完成了小写转大写的功能,但是是一个单任务式的响应:客户端发送连接接收响应,程序结束;服务端则接收数据响应数据也结束!就实际需要而言,并没有很大的用处,所以现在我们就给客户端和服务端添加上并发功能。 逻辑其实很简单,就是利用golang的go...

Golang网络编程(三):解决粘包问题

一、概述 前面已经完成了一个完美的多并发CS模型,但美中不足的是没有解决粘包问题。 1.1 什么是粘包问题? 在网络传输中,数据都是通过数据流来传输的,也就是以比特来传输。传输的过程中我们可能会遇到各种各样的问题导致数据传输异常,最常见的就是网络发送时延。网络时延会导致...

278. 第一个错误的版本

问题描述 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 ...

Django开发常用指令

Django相关指令 django-admin.py和manage.py这两个文件代码和包含命令基本是一样的,只不过django-admin.py一般只用来创建项目,而manage.py用来管理创建好了的项目。 创建新项目 django-admin.py startproject [project_...

Docker构建Django部署环境(一)核心概念

本文只是对Docker的概念做了较为详细的介绍,并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令。 阅读本文大概需要15分钟,通过阅读本文你将知道一下概念: 容器 什么是Docker? Docker思想、特点 Docker容器主要解决什么问题 容器 VS 虚拟机 Docke...

Django与supervisor 管理进程

1、前言 在Django项目中,我们需要用到一些独立于Django框架外的脚本。这样一些脚本可能需要独立的持续运行,且具有很强的可维护性,这个时候supervisor就可以排上用场了。 基于python编写,安装方便 进程管理工具,可以很方便的对用户定义的进程进行启动,关闭,重启,并且对...

MySQL索引类型不同纬度解析

想必大家在被问到这个问题的时候,在网上总是能搜到不同的回答,却又各不相同。其实这些答案大部分都是正确的,只不过在阐述MySQL索引类型的时候从不同方面入手而已。这里归纳如下,具体的机制可以参考其他博文: 从数据结构角度 B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引...

Docker构建Django部署环境(三)Docker Compose

由于Django的配置文件实在有点多,这里我们先用Flask最小化演练。 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。 本章将介绍 Compose 项目情况以及安装和使用。 Compose 项目是 Docker 官方的开...