草庐IT

JavaScript 二分查找

二分查找(BinarySearch)是一种在有序数组中查找目标元素的查找算法。它的基本思路是:在数组的中间元素开始,如果该元素等于目标元素,则查找成功;如果该元素大于目标元素,则在左半部分继续查找;如果该元素小于目标元素,则在右半部分继续查找。这样一直重复这个过程,直到查找成功或者查找失败。基本步骤:设置两个指针,left和right,分别指向数组的第一个元素和最后一个元素。计算中间索引,mid=(left+right)/2。如果该索引上的元素等于目标元素,则查找成功,返回该索引。如果该索引上的元素大于目标元素,则说明目标元素在左半部分,将right指针移动到mid-1。如果该索引上的元素小于

JavaScript 二分查找

二分查找(BinarySearch)是一种在有序数组中查找目标元素的查找算法。它的基本思路是:在数组的中间元素开始,如果该元素等于目标元素,则查找成功;如果该元素大于目标元素,则在左半部分继续查找;如果该元素小于目标元素,则在右半部分继续查找。这样一直重复这个过程,直到查找成功或者查找失败。基本步骤:设置两个指针,left和right,分别指向数组的第一个元素和最后一个元素。计算中间索引,mid=(left+right)/2。如果该索引上的元素等于目标元素,则查找成功,返回该索引。如果该索引上的元素大于目标元素,则说明目标元素在左半部分,将right指针移动到mid-1。如果该索引上的元素小于

记一次MySql唯一索引在left join连表查询没走索引的问题

在新建一张账单结算信息表bill_settlement_info的时候,建立的唯一索引uk_bill_no(bill_no,tenant_id)。由于列表查询用到该表的字段。所以在sql中自然做了jeftjoin查询。on条件是bill.billNo=bill_settlement_info.billNo。自然认为这样的链表会走bill_settlement_info的索引。但是上线生产后,由于生产数据增长很快。立马发现列表查询时,使用bill_settlement_info表中的字段过滤数据时。查询超时。排查后发现是慢SQL导致。使用explan分析查询语句发现是连表bill_settlem

记一次MySql唯一索引在left join连表查询没走索引的问题

在新建一张账单结算信息表bill_settlement_info的时候,建立的唯一索引uk_bill_no(bill_no,tenant_id)。由于列表查询用到该表的字段。所以在sql中自然做了jeftjoin查询。on条件是bill.billNo=bill_settlement_info.billNo。自然认为这样的链表会走bill_settlement_info的索引。但是上线生产后,由于生产数据增长很快。立马发现列表查询时,使用bill_settlement_info表中的字段过滤数据时。查询超时。排查后发现是慢SQL导致。使用explan分析查询语句发现是连表bill_settlem

leetcode 34. Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置(中等)

一、题目大意标签:查找https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。进阶:你可以设计并实现时间复杂度为 O(logn) 的算法解决此问题吗?示例1:输入:nums=[5,7,7,8,8,10],target=8输出:[3,4]示例 2:输入:nums=[5,7,7,8,8,10],target=6输出:[-1

leetcode 34. Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置(中等)

一、题目大意标签:查找https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。进阶:你可以设计并实现时间复杂度为 O(logn) 的算法解决此问题吗?示例1:输入:nums=[5,7,7,8,8,10],target=8输出:[3,4]示例 2:输入:nums=[5,7,7,8,8,10],target=6输出:[-1

kubernetes笔记-1-基础环境部署

一、环境信息:操作系统:ubuntu18.04serveramd64docker:docker19.03.cekubernetes:v1.19IP地址主机名  角色172.29.9.1k8s-masterk8s-master.ilinux.iok8s-api.ilinux.iomaster172.29.9.11k8s-node1.ilinux.iok8s-node1node1172.29.9.12k8s-node2.ilinux.iok8s-node2node2172.29.9.13k8s-node3.ilinux.iok8s-node3node3操作系统安装无需配置swap分区二、操作系统基

kubernetes笔记-1-基础环境部署

一、环境信息:操作系统:ubuntu18.04serveramd64docker:docker19.03.cekubernetes:v1.19IP地址主机名  角色172.29.9.1k8s-masterk8s-master.ilinux.iok8s-api.ilinux.iomaster172.29.9.11k8s-node1.ilinux.iok8s-node1node1172.29.9.12k8s-node2.ilinux.iok8s-node2node2172.29.9.13k8s-node3.ilinux.iok8s-node3node3操作系统安装无需配置swap分区二、操作系统基

记录--实时音视频功能简析(live-pusher与live-player)

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助使用须知2017年下半年,微信6.5.21版本支持在线音视频功能。开发者可以通过两个音视频组件和实现实时地在线直播、视频通话、语音通话等功能。上述功能需要用到两个小程序媒体组件中的两个:live-pusher与live-player。下文简单介绍两这个组件的基础知识。仅可以带你入门,如果是高手请绕行。注册小程序注册小程序请单击微信公众平台,完成注册后,在小程序管理页面的【开发】>【基本配置】中记录下小程序AppID供后面使用。注意:必须以非个人主体类型进行注册,否则无法开通和这两个标签。开通标签使用权限live-pusher和live

记录--实时音视频功能简析(live-pusher与live-player)

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助使用须知2017年下半年,微信6.5.21版本支持在线音视频功能。开发者可以通过两个音视频组件和实现实时地在线直播、视频通话、语音通话等功能。上述功能需要用到两个小程序媒体组件中的两个:live-pusher与live-player。下文简单介绍两这个组件的基础知识。仅可以带你入门,如果是高手请绕行。注册小程序注册小程序请单击微信公众平台,完成注册后,在小程序管理页面的【开发】>【基本配置】中记录下小程序AppID供后面使用。注意:必须以非个人主体类型进行注册,否则无法开通和这两个标签。开通标签使用权限live-pusher和live