随笔分类 - 算法
摘要:拿硬币 Question: 有10个硬币,我和你按顺序拿,每次可以拿1、2或者4个,拿到最后一个硬币的人输,你怎么确保自己可以获胜(这个问题的有一个前提:双方都想赢,并且当遇到能赢的情况时,他们能做出正确的决策而不是随便决策) 这种问题,可以从简单情况先想...
阅读全文
摘要:递归实现单链表的反转链表反转之前用迭代实现了链表反转,受同学启发,也可以用递归方式实现,如下。 对于链表结构,还是采用单链表的反转里面的结构。注意: 由于递归的操作是规模缩小,操作重复的,所以递归时直接从第一个数据结点开始(不是从空的头结点开始),虽...
阅读全文
摘要:单链表的反转单链表概念引入 有一个空的head节点作为头节点,头节点的存在主要是为了操作的统一性而设立的(删除增添节点等操作能够统一,不需要特殊考虑单独情况),当然它不是必须的,它的数据域毫无意义。我们的目标:实现单链表的反转 1.如果考虑不破化原有链表,...
阅读全文
摘要:2SUM、3SUM、KSUM2SUM:Question: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。Example:给定 nums = [2, 7, 11, 15], ...
阅读全文
摘要:前言今日,听得同学间讨论两个问题,觉得甚是有趣,一个是找到n个数找最大10个数,另一个是位映射的问题。一、N个数找最大10个数引入: 给定n个数据,比如10万,又或着100万,让你找到最大前10个数,怎么找呢? 我心中不免一惊,真的是很巧,之前我在做数字手写...
阅读全文
摘要:引言排序和检索是数据数据的两个关键部分,排序是想尽快有序组织数据,检索则是想尽快查找数据。 最近发现对这个知识点里的部分内容生疏,所以特此做个总结。环境IDE:Eclipse 语言:Java排序分类 排序算法在实现方法上被分为两个大类,我们今天讲的是基于比...
阅读全文
摘要:Sherwood思想寻找元素:引入: 一个确定性算法A,(所谓确定,就是你不管运行几次,你的运行过程都是一样的),我们假设你是去二分查找一个元素,并且恰好是最差情况,运行了logn次,那么不管以后多少次运行这个程序,次数都是logn次。但是如果我们将midd...
阅读全文
摘要:分支界限算法 之单源最短路径题目简述: 分支限界具体见百度。分支界限算法核心思想: 在每次分支后,对凡是界限超出已知可行解值那些子集不再做进一步分支。这样,解的许多子集(即搜索树上的许多结点)就可以不予考虑了,从而缩小了搜索范围。个人理解: 什么叫...
阅读全文

浙公网安备 33010602011771号