随笔分类 - 算法设计与分析
摘要:前言: 该博客是根据Java -韩顺平 图解Java 数据结构 和 算法-尚硅谷学习时,所做的笔记 一、稀疏数组和队列 1、稀疏数组 基本功能 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 处理方法 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的
阅读全文
摘要:回调函数、钩子函数、模板函数、回调接口这些所描述的都是同一种东西,只是名字不一样。 所谓回调函数就是通过运用模板方法的设计模式设计的。通过设计回调接口实现!!
阅读全文
摘要:题目: 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 解题思路: 利用数组的“0”和“1”的数值表示玩家存在与不存在的两种状态,对数组进行多次重复循环,每次循环到最后一位数组元素后又从下标0开始循环,每次循环利用计数累加,计数
阅读全文
摘要:一、学算法必去的一个网站 首先有一个网站那是每一个学习数据结构与算法都必须去的网站,说出来你就知道了,那就是大名鼎鼎的LeetCode。 链接直达:https://leetcode.com/ 中文版长这个样子的:点开探索给你看看 强烈推荐人手一个啊!不骗你! 二、数据结构可视化网站 接下来就是在你学
阅读全文
摘要:/** * **统计字符串中每个字符出现的次数** * 思路: * 用一个Map保存统计结果,key保存出现的字符,value保存该字符出现的次数 * 利用字符串的charAt方法可以遍历字符串中每一个字符 * 如果map中该字符不存在,则存入,并且对应的次数为1 * 如果map中该字符已经存在,则
阅读全文
摘要:0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时
阅读全文