数据结构和算法
文章平均质量分 65
brycegao321
Android/iOS/后台/H5全栈
展开
-
多线程交替打印输出字符串
题目: 每个线程只能打印一个字母, 多线程交替打印字符串"Hello,world!"。 例如当前有ab原创 2021-06-19 15:07:33 · 988 阅读 · 0 评论 -
数字转换为合法IP地址
算法题目:给定一串数字, 返回所有合法的ipv4地址集合。例如: 给出数字12345, 返回1.2.3.45、1.2.34.5、1.23.4.5等等。思路:ip地址是*...*格式。 每个ip段合法值是0~255, 即合法的ip地址格式应该是[0,255].[0,255].[0,255].[0,255]。 可以通过递归实现, 顺序遍历数字添加数字到当前ip段或者下一段, 当数字遍历到末尾且存在4个ip段则找到了合法的地址。边界条件:1、ip段位空, 添加当前数字到第一段;2、每次获取最后一个i原创 2020-11-21 20:55:15 · 1065 阅读 · 0 评论 -
Android根据座标找到对应的View
在界面上点击按钮时,想想安卓是如何找到能响应事件的顶层View的?如果给你坐标x、y, 你能找到对应的顶层View么?首先安卓布局根节点是DecorView,并呈现为多叉树结构; 每个顶层View都是一个页节点;需求:手指在界面上滑动时显示对应的顶层View。<?xml version="1.0" encoding="utf-8"?><LinearLayout xml...原创 2019-05-30 09:50:46 · 1740 阅读 · 0 评论 -
红黑树TreeMap总结
红黑树是自平衡的二叉查找树,又称二叉B树。它可以在O(logN)时间复杂度内完成查找、增加、删除操作。红黑树是在二叉查找树基础上增加了着色和左右旋转使得红黑树相对平衡, 与AVL树相比,红黑树并不追求所有子树的高度差不超过1,而是保证从根节点到叶子节点的最长路径不超过最短路径的2倍。红黑树通过如下性质实现了自平衡:1. 节点必须是黑色或红色;2.根节点必须是黑色;3.所有NIL节...原创 2018-12-30 16:07:16 · 494 阅读 · 0 评论 -
斐波那契数列区间和
同事去某团面试,聊到算法时问了“计算斐波那契数列下标从i到j的和”? 斐波那契数列特点是当前值等于前2位的和, 例如0、1、1、2、3、5、8、13、21等等。 构造斐波那契数列可以使用递归或者非递归的方法。 设想使用递归方式计算下标i、下标j的值, 假设下标i比较小, 那么计算下标j的值时必然重复递归了i, 所以递归方法性能比较差。 考虑使用非递归方式实现,尽量减少时间和空间复...原创 2018-04-08 11:54:22 · 1557 阅读 · 2 评论 -
大数据Top K问题
大数据的套路就是分治,将大问题分解为若干个小问题, 计算小问题后并合并结果。原创 2018-03-21 11:12:30 · 7027 阅读 · 1 评论 -
二叉树和面试题
说明常用的前序、中序、后序、层次遍历, 求每层最大值/最小值、 二叉树最大深度、最小深度、二叉树最宽节点数。原创 2016-09-10 18:37:04 · 1076 阅读 · 0 评论 -
烧脑的算数(交换2个变量值)
简单的算数能实现惊人的结果原创 2017-10-12 15:10:48 · 367 阅读 · 0 评论 -
Correct Path解题方法
Coderbyte网站编程挑战题目原创 2017-11-14 16:54:35 · 616 阅读 · 0 评论 -
详解快速排序
摘自百度百科: 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组...原创 2017-03-17 15:51:20 · 369 阅读 · 0 评论 -
RSA非对称加密的坑
RSA加解密的Java实现原创 2016-09-20 09:03:44 · 2632 阅读 · 0 评论