Siyao's Blog


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Java常用笔记

发表于 2018-01-27
字数统计: 335 | 阅读时长 ≈ 2
JAVA集合类ArrayList删除指定值元素错误做法:for(int i = 0, len = list.size(); i < len; i++){ if(list.get(i) == 1) { list.remove(i); } } 因为删除了元素,但是未改变迭代的下标,这样当迭代到最后一个的时候就会抛异常。 正确做法:for(int i = 0, len = list.size(); i < len; i++){ if(list.get(i) == 1){ ...
阅读全文 »

【九章系统设计】新鲜事系统

发表于 2018-01-27 | 分类于 系统设计
字数统计: 1,805 | 阅读时长 ≈ 8
系统涉及面试的两种形式及常见问题设计某某系统设计微博、滴滴、微信、短网址系统、nosql数据库 找问题 网站挂了怎么办 网站太慢怎么办 流量增长怎么 面试官:请设计Twitter系统设计问题的4S分析法 Scenario场景 需要设计哪些功能,设计的多牛 向面试官提问:features/QPS/DAU(日活跃用户)/inerfaces Servece服务 将大系统拆分成小服务 Split/Application/Module Storage存储 数据如何存储与访问 Schema(表头字段)/data/sql/nosql/File System Scale升级 解决缺陷,处理可能遇 ...
阅读全文 »

理解Java垃圾回收机制

发表于 2018-01-24
字数统计: 5,605 | 阅读时长 ≈ 20
1. JVM内存模型运行时内存数据区大体上被分为5个区域、两种类型。 5个数据区包括:方法区、堆区、虚拟机栈、本地方法栈、程序计数器 两种类型: 所有线程共享的数据区: 方法区: 存储已被虚拟机加载的类信息、常量、静态变量、即时编译后代码等数据。常量池位于方法区,并使用永久代来实现方法区 堆区: 我们常说用于存放对象的区域 线程私有(隔离)数据区: 虚拟机栈: 方法执行时创建一个栈帧,用于存储局部变量、操作数栈、动态链接、方法出口等信息。每个方法一个栈帧,互不干扰 本地方法栈: 用于存放执行native方法的运行数据 程序计数器: 当前线程所执行的字节码的指示器,通过改变计数器来选 ...
阅读全文 »

【九章算法基础班】图与搜索

发表于 2018-01-23
字数统计: 5,816 | 阅读时长 ≈ 30
outline graph Clone Graph Topological Sorting Search DFS BFS:(O(m+n)m为边树,n为点数) 遍历图 树的BFS需要用队列,在图中除了要用队列还需要用到hash表,用来存储节点是否被访问过 BFS还可以用于求深度,最短路径 简单图求最短路径 拓扑排序 BFS例题1. Clone Graph题目 Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. OJ’s undir ...
阅读全文 »

【leetcode】BFS问题

发表于 2018-01-20
字数统计: 362 | 阅读时长 ≈ 2
Perfect Squares题目 Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n. For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9. 分析典型的BFS题目 方法: 需要一个队列记录当前剩余的和。 首先将n加入队列,然后n出队列,计算小于他的最 ...
阅读全文 »

【leetcode】DFS问题

发表于 2018-01-20
字数统计: 3,561 | 阅读时长 ≈ 17
二叉树的深度优先遍历DFS是搜索算法的一种。它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。 如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。 如上图的例子,DFS访问数组为:ABDECFG。 实现方式分析一下,在遍历了根结点后,就开始遍历左子树,最后才是右子树。 因此可以借助堆栈的数据结构,由于堆栈是后进先出的顺序,由此可以先将右子树压栈,然后再对左子树压栈, 这样一来,左子树结点就存在了栈顶上,因此 ...
阅读全文 »

回文问题

发表于 2018-01-19
字数统计: 9 | 阅读时长 ≈ 1
最长回文子串 Longest Palindromic Substring
阅读全文 »

【九章算法基础班】数据结构

发表于 2018-01-19 | 分类于 九章算法
字数统计: 8,061 | 阅读时长 ≈ 39
Outline 线性数据结构 Queue Stack HashTable 树形数据结构 Heap/Priority Queue TreeMap 队列Queue 支持操作:Push/Pop/Top,时间复杂度都是O(1) 考点:宽度优先搜索BFS 多做做BFS就可以了 栈Stack 支持操作:Push/Pop/Top,时间复杂度都是O(1) 考点:非递归实现DFS 例题Min Stack题目 Design a stack that supports push, pop, top, and retrieving the minimum element in constant time ...
阅读全文 »

BFS & DFS

发表于 2018-01-16
字数统计: 1,355 | 阅读时长 ≈ 6
Word Ladder题目 Given two words (beginWord and endWord), and a dictionary’s word list, find the length of shortest transformation sequence from beginWord to endWord, such that: Only one letter can be changed at a time. Each transformed word must exist in the word list. Note that beginWord is not a tr ...
阅读全文 »

【DSP系统】Java UDP通信模拟监听模块

发表于 2018-01-10
字数统计: 370 | 阅读时长 ≈ 2
UDP特点 无连接,不可靠,会造成数据丢失 速度快,因为无需进行三次握手 限制数据传输大小64K 发送端发送端模拟ADx发送竞价请求,这里采用从文件中按行读取数据,然后发送给接收端的方式。 public static void main(String[] args) throws Exception { //DatagramSocket类表示用来发送和接收(udp)数据报包的套接字。 DatagramSocket ds = new DatagramSocket(); //获取本机ip地址 String localIp = InetAddress.getLocalHost() ...
阅读全文 »
1…345…12
Siyao

Siyao

siyao小朋友画圈圈的地方

120 日志
25 分类
32 标签
© 2017 — 2018 Siyao
由 Hexo 强力驱动
|
主题 — NexT.Pisces
| Site words total count: 222.8k
访问人次 次 总访问量 次