leetcode刷题:无重复字符的最长子串

题目: 分析: 取巧解法,通过set class Solution { public: int lengthOfLongestSubstring(string s) { if(s.size() == 0) return 0; set<char> lookup; int maxStr = 0; int left = 0; for(int i = 0; i < s.size(); i++) { while (lookup.find(s[i]) != lookup.end()) { looku

  • 0
  • 0
  • 阅读 ( 246 )

算法-----二叉树

开篇: 先在开头总结一下,二叉树解题的思维模式分两类: 1、是否可以通过遍历一遍二叉树得到答案 ?如果可以,用一个 traverse 函数配合外部变量来实现,这叫「遍历」的思维模式。 2、是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案 ?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值,这叫「分解问题」的思维模式。 无论使用哪种思维模式,你都需要思考: 如果单独抽出一个二叉树节点,它需要做什么事情?需要在什么时候(前/中/后序位置)做 ?其他的节点不用你操心,递归函数会帮

  • 0
  • 0
  • 阅读 ( 220 )

linux进程调度算法:分时调度策略、FIFO调度策略、RR调度策略

linux内核的三种调度方法:

  • 0
  • 0
  • 阅读 ( 60 )

【1】深入理解MySQL索引底层数据结构与算法

【MySQL】史上最全的MySQL高性能优化总结 【1】深入理解MySQL索引底层数据结构与算法 1. 为什么不使用二叉树、红黑树、B树来作为索引? 2. MyISAM 与 Innodb存储引擎有什么区别? 3. MySQL 的索引按照功能分类可以分几种? 4. MySQL 的的聚集索引与非聚集索引是什么? 5. 为什么建议 InnoDB表必须建主键? 6. 为什么推荐使用整型的自增主键?为什么不用UUID? 7. 为什么非主键索引的叶子节点存储的是主键值? 8. 联合索引的底层存储结构长什么样? 【2】

  • 0
  • 0
  • 阅读 ( 244 )

已知数组A[n]的元素为整型,设计算法将其调整为两部分,左边所有元素为奇数,右边所有元素为偶数。

解题思路: 首先设置两个下标,first 和 last,分别指向顺序表第一个和最后一个。然后做出判断: 判断一: A[first] 为奇数且 A[last] 为偶数,则 first 向后移一位,last 向前移一位。 if ( a [ first ] % 2 == 1 && a [ last ] % 2 == 0 ) { first ++ ; last -- ; continue ; } 判断二: A[first] 为偶数, A[last] 为奇数,则先将 A[first] 和 A[las

  • 0
  • 0
  • 阅读 ( 217 )

C语言经典递推算法之杨辉三角展开(详解)

文章目录 一、递推算法 二、杨辉三角展开 一、递推算法 这是一种比较简单的算法,即通过已知条件,利用特定关系得到中间结论,然后得到最后结果的算法。递推算法可以分为顺推和逆推两种。 二、杨辉三角展开 1、杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列。 杨辉三角的性质: 每个数等于它上方两数之和。 每行数字左右对称,由1开始逐渐变大。 第n行的数字有n项。 前n行共[(1+n)n]/2 个数。 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。 第n行的

  • 0
  • 0
  • 阅读 ( 213 )

分布式协议与算法实战——Multi Paxos(笔记)

兰伯特提到的 Multi-Paxos 是一种思想,不是算法。而Multi-Paxos 算法是一个统称,它是指基于 Multi-Paxos思想,通过多个 Basic Paxos实例实现一系列值的共识的算法(比如 Chubby 的 Multi-Paxos 实现、Raft算法等)。 通过多次执行 Basic Paxos 实例,来实现一系列值的共识,会存在一下问题: 如果多个提议者 同时 提交提案,可能出现因为 提案冲突 ,在准备阶段没有提议者接收到大多数准备响应,协商失败,需要重新协商。 2 轮 RPC 通讯(

  • 0
  • 0
  • 阅读 ( 316 )

Java.Utils:Twitter 的分布式自增 ID 雪花算法

Don’t say much, just go to the code. package org . bood . common . utils ; /** * Twitter 的分布式自增 ID 雪花算法 snowflake (Java版) * * @author bood * @since 2020/10/16 */ public class SnowFlake { /** * 起始的时间戳 */ private final static long START_STMP = 1480166465631

  • 0
  • 0
  • 阅读 ( 224 )

堪称最好最全的A*算法详解(译文)

英文原文链接:http://theory.stanford.edu/~amitp/GameProgramming/     英文原文参考:http://www-cs-students.stanford.edu/%7Eamitp/gameprog.html#Paths     翻译参考链接:http://blog.csdn.net/b2b160/article/details/4057781     我们尝试解决的问题是把一个游戏对象(game object)从出发点移动到目的地。路径搜索(Pathfind

  • 0
  • 0
  • 阅读 ( 71 )

java 实现稀疏算法

1,获取原数组 2,获取原数组中有效数据的个数sum,用于创建稀疏数组, 3.创建稀疏数组(多行(sum+1)  三列), 4,第一行数据:行等于源数组的行长度,列等于源数组的列的长度,有效数据个数为sum。 运用的新知识点:1.  System.out.printf("%d\t",s);格式化数据,2.  行数为源头数据的长度,列数为原始数据每行的长度 import org.junit.Test; public class SparseArray { @Test public void

  • 0
  • 0
  • 阅读 ( 281 )

Java控制台打印爱心算法(今典算法案例)

Java控制台打印爱心算法(今典算法案例) 要求:利用java语言编写算法在控制台打印爱心算法(根据输入参数的大小决定爱心的大小); 先给大家看看运行的结果吧 输入6 输入8 输入10 相信大家在学习算法的时候都有过这个想法,做一个爱心,以为只有这样子我们程序猿才能找到女盆友,获得女盆友的芳心。 可能大家会觉得比较难,根据这个爱心的形状不知道怎么分析,任何事物只要你仔细的分析都是有规律可巡的,最底层的算法就是找规律(相信大家小时候没少找规律吧!),来今天我来教大家用最sb的方法写这个爱心,希望我也能因此找

  • 0
  • 0
  • 阅读 ( 182 )

JVM第三讲:深入理解java虚拟机之垃圾回收算法?CMS垃圾回收的基本流程?对象引用类型?

JVM第三讲:深入理解java虚拟机之垃圾回收算法?CMS垃圾回收的基本流程?对象引用类型? 摘要:本文讲解讲解常见的 垃圾收集算法 ,首先思考三个问题: 1、哪些内存需要回收?2、什么时候回收?3、如何回收? 然后讲解内存回收的具体实现- 垃圾收集器 ,最后对Java中 对象引用类型及具体使用场景 做了探讨,jvm的自动垃圾回收策略使得程序员摆脱了编程中繁杂的内存管理,可以把精力专注于系统业务。 文章目录 JVM第三讲:深入理解java虚拟机之垃圾回收算法?CMS垃圾回收的基本流程?对象引用类型? 思考

  • 0
  • 0
  • 阅读 ( 161 )

webrtc QOS方法四.3(probe探测算法学习)

目录 一、概述 二、实现原理 1、实现思路 2、模块分工 3、具体实现 1)探测次数 2、探测节奏 3、pad数据 4、AlrDetector 5、探测参数 三、参考 一、概述 发送端通过GCC算法,根据网络状态动态调节发送的码率。但是系统启动阶段初始码率应该设置成多大比较合适?  GCC估计带宽,这个算法的特点是:快降慢升,网络质量差时能迅速响应衰减带宽;但是网络持续向好时,不能迅速增加对应带宽。 所以需要一种快速探测算法,探测当前网络合适的带宽,保证音视频按照最佳码率值发送数据。 二、实现原理 1、实

  • 0
  • 0
  • 阅读 ( 280 )

【刷leetcode,拿Offer-019】1038. Binary Search Tree to Greater Sum Tree

题目链接: https://leetcode.com/problems/binary-search-tree-to-greater-sum-tree/ 题面: 1038. Binary Search Tree to Greater Sum Tree Medium 14918FavoriteShare Given the root of a binary  search  tree with distinct values, modify it so that every  node  has a new

  • 0
  • 0
  • 阅读 ( 260 )

leetcode 1038. Binary Search Tree to Greater Sum Tree(python)

描述 Given the root of a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST. As a reminder, a binary search tree is a tree t

  • 0
  • 0
  • 阅读 ( 279 )

图算法(六):全最短路算法(All Shortest Paths)【适用场景:用于路径设计、网络规划等场景】【用以解决图论研究中的一个经典算法问题,旨在寻找图中两节点之间的所有最短路径】

一、概述 全最短路径算法(All Shortest Paths)用以解决图论研究中的一个经典算法问题,旨在寻找图中两节点之间的所有最短路径。 适用场景 :全最短路径算法(All Shortest Paths)适用于路径设计、网络规划等场景。 二、 三、 参考资料:

  • 0
  • 0
  • 阅读 ( 78 )

狄克斯特拉(Dijkstra)算法详解

1.前言 最近在看《算法图解》,其中第七章狄克斯特拉算法个人感觉并没有讲的清楚,比如看完7.1节给人的感觉是狄克斯特拉算法会遍历图中的每一条边,后续狄克斯特拉不适用负权边的说法就站不住脚了。后续在查阅诸多资料之后,总结文章一篇,尽可能以通俗易懂且思路清晰的方式来讲解狄克斯特拉算法。 2.简介 狄克斯特拉算法用于寻找在加权图中前往目标节点的最短路径,加权图是对边进行加权的图。 2.1.定理 设想这样一个场景——在一个没有负权边的有向图中,如果从起点直接到节点A的开销小于从起点直接到节点B的开销,那么即使从起

  • 0
  • 0
  • 阅读 ( 159 )

已知数组A[n]中的元素为整型,设计算法将其调整为左右两个部分,左边所有元素为奇数,右边所有元素为偶数,要求时间复杂度为O(n)

一般这种要求时间复杂度的,采取的策略为用空间换时间 代码: #include <iostream> using namespace std; int* Ajust(int a[], int n) { int* res = new int[n]; int* even = new int[n]; int* odd = new int[n]; int index = 0, even_index = 0, odd_index = 0; int i, j; for(i = 0; i < n; i+

  • 0
  • 0
  • 阅读 ( 177 )

学python要学算法吗_黄哥Python提醒:学习Python算法时都学不懂怎么办?

有网友提出这个问题,学习Python算法时都学不懂怎么办?​www.zhihu.com 我的回答得到了100多个赞, 特写一篇完善一下。 第一,首先要确保你具备学习数据结构和算法的能力。 很多人特别着急,没有学会走,先想着跑,这样的学习方法不可取。 下面有一些题目,如果写不出代码,说明还不具备学习数据结构和算法的能力。 1、给出任何整数,用函数写出个位,十位,百位,千位... 之和 例子:7896 6 + 9 + 8 + 7 = 30 2、自己写代码求一个列表的最大值,不能用max. 3、用代码实现冒泡排

  • 0
  • 0
  • 阅读 ( 68 )

算法 - 图(Graph)- 生成树(Spanning Tree)

图(Graph) 图(Graph)- 生成树(Spanning Tree)- Prim算法 图(Graph)- 生成树(Spanning Tree)- Kruskal算法 生成树(Spanning Tree),也称为支撑树 连通图的极小连通子图,它含有图中全部的n个顶点,恰好只有n-1条边 最小生成树(Minimum Spanning Tree) 最小生成树(Minimum Spanning Tree,简称MST) 也称为最小权重生成树(Minimum Weigth Spanning Tree)、最小支撑

  • 0
  • 0
  • 阅读 ( 327 )