随笔分类 -  数据结构与算法相关

笔试题目
摘要:1、360: 求期望 : 1.0*a*b/100; 输入:第一行:个数,之后的每行为 pi 和 概率*100 3 2 50 3 20 1 30 求偶串个数:字串的所有值异或 阅读全文
posted @ 2019-09-11 16:18 Scarlett meng 阅读(103) 评论(0) 推荐(0)
leetcode算法精简总结第一遍,but 不全
摘要:Title: leetcode算法精简总结第一遍: Tags: java 算法 Slug: java-jichu Category: java语言 Summary:算法 # 第一部分:String # 1、 Reverse String > Example: > Given s = "hello", 阅读全文
posted @ 2019-09-11 16:17 Scarlett meng 阅读(489) 评论(0) 推荐(0)
1数组和字符串题解
摘要:恢复内容开始 1. 2. 菜鸟★桥:先利用hash表将输入的字符串s中ABCD的个数记录在数组N中。然后for(int i =0;i<len;i++)循环里把数组N减去当前s[i]字符的个数,然后对于当前的s[i]把数组N中所有小于s[i]的字母对应发的数字相加即可。这个循环做完就得到逆序数。编程 阅读全文
posted @ 2019-09-11 16:15 Scarlett meng 阅读(172) 评论(0) 推荐(0)
8大排序算法---我熟知3(归并排序/快速排序/堆排序)
摘要:排序算法: 快排: o(nlogn) o(1)不稳定 归并:o(nlogn) o(n) 稳定 基数: 冒泡 睡眠 面条 烙饼 1、quicksort: 返回条件:start >=end private = a[start]+a[end]/2 while(left <= right) while(le 阅读全文
posted @ 2017-09-10 13:27 Scarlett meng 阅读(206) 评论(0) 推荐(0)
8大排序算法-我熟知二(希尔、选择)
摘要:3、希尔排序(递减增量排序算法)不稳定的-- - - 直接插入排序的改进 、复杂度介于O(nlog^2n)~ O(n),空间是O(n) 基于插入排序的两点性质: 1、对于几乎已排好序的数组效率高,可达到线性 2、但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位 方法:先将整个待排元素序 阅读全文
posted @ 2017-09-05 20:29 Scarlett meng 阅读(152) 评论(0) 推荐(0)
8大排序算法-我熟知一(冒泡、直接插入)
摘要:参考:https://itimetraveler.github.io/2017/07/18/%E5%85%AB%E5%A4%A7%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95%E6%80%BB%E7%BB%93%E4%B8%8Ejava%E5%AE%9E%E7%8E%B0/ 阅读全文
posted @ 2017-09-05 12:44 Scarlett meng 阅读(170) 评论(0) 推荐(0)
大O和数据的规模
摘要:1、O(f(n)) 学术界:O表示算法执行的上界,例如,归并算法的时间复杂度可以是O(nlogn),同时也是O(n^2)的 业界认为:O表示算法执行的最低上界,归并算法的时间复杂度是O(nlogn) 2、一个时间复杂度问题 一个字符串数组,将一每个字符串进行字母序排序,然后将字符串数组进行字典序排序 阅读全文
posted @ 2017-09-04 21:27 Scarlett meng 阅读(257) 评论(0) 推荐(0)
五、宽度优先搜索(BFS)
摘要:用处: 树是图的特殊状态 图的遍历 Traversal in Graph • 层级遍历 Level Order Traversal • 由点及面 Connected Component • 拓扑排序 Topological Sorting 最短路径 Shortest Path in Simple G 阅读全文
posted @ 2017-03-16 21:32 Scarlett meng 阅读(476) 评论(0) 推荐(0)
三、二叉树
摘要:一、递归思想:递归的基本思想是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。(http://www.nowamagic 阅读全文
posted @ 2017-03-15 20:01 Scarlett meng 阅读(315) 评论(1) 推荐(0)
一、搜索问题
摘要:几乎所有的搜索问题都适用使用排列组合模板 模板: 要返回的结果 异常处理‘ 调用helper(找到所有【】开头的子集,放到results里) 递归函数: 递归三要素: 1、递归的定义(接受什么样的参数,返回什么结果,做了什么事情)--找到所有以subset开头的子集,然后丢到results里 2、递 阅读全文
posted @ 2017-03-06 21:45 Scarlett meng 阅读(283) 评论(0) 推荐(0)
一、字符串问题
摘要:题目:对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。 分析:命名有意义;正常的for循环即可;一定有非空检查;数组不要越界 1)常规算法: 2,not ac :循环条 阅读全文
posted @ 2017-03-06 19:23 Scarlett meng 阅读(249) 评论(0) 推荐(0)
二.二分法总结
摘要:一、二分法基本功 1、通用二分模板,二分T(n)= log2n 伪码:异常检查;start + 1 < end ;start + (end - start) / 2 ;A[mid] ==, <, >; A[start] A[end] ? target start= 0, end = length - 阅读全文
posted @ 2017-03-03 11:54 Scarlett meng 阅读(1042) 评论(0) 推荐(0)