算法
xujiali5172923
这个作者很懒,什么都没留下…
展开
-
(1)判断链表中是否有环
英文命题:Given a linked list, determine if it has a cycle in it.Follow up: Can you solve it without using extra space?`/** * Definition for singly-linked list. * struct ListNode { * in原创 2015-09-02 14:05:02 · 387 阅读 · 0 评论 -
(2)寻找链表中环的位置
算法(1)中,我们已经知道如何判断一个链表中是否有环了,那么怎么找到环的位置呢?英文命题:Givena linked list, returnthe node where the cycle begins. If there is no cycle, returnnull.Follow up:Can you solveitwithoutusing原创 2015-09-02 14:40:54 · 464 阅读 · 0 评论 -
数值分析笔记 第一章 数值分析与科学计算引论
一、数值分析概念:数值分析也称计算数学,是数学科学的一个分支,他研究用计算机求解各种数学问题的数值方法及其理论与软件实现。二、算法元概念:计算的基本单位称为算法元,它由算子、输入元和输出元组成。由一个或多个算法元组成的一个进程,它是算法元的有限序列。三、面向计算机的算法分为两类:串行算法和并行算法,只有一个进程的算法适合于串行计算机,称为串行算法。有两个以上进程的算法那适合于并行计算机,称原创 2015-06-17 13:56:18 · 920 阅读 · 0 评论 -
一次循环删除std::vector元素的方法
最近又遇到这个逻辑,耽误了不少时间,现在整理下:erase返回的是指向删除元素的下一个元素的迭代器,那么根据这个逻辑,所以一次循环删除逻辑如下; for (auto it = vecReply.begin(); it != vecReply.end();) { if (it->xx== xx) { it = vecReply.erase(it); } else原创 2017-05-10 10:46:17 · 1946 阅读 · 0 评论 -
go语言实现快速排序
快速排序作为分治法的经典算法,原理自不必多说,我只是用go语言直接实现了,当然可以不用中间切片,但是这种写法最能体现快速排序的分治思想。package mainimport "fmt"// 快速排序(直接)实现func quickSort(s []int) []int { if len(s) < 2 { return s } v := s[0] var left, ...原创 2018-04-09 09:58:26 · 551 阅读 · 2 评论 -
go语言实现二分法查找
二分法查找原理,自不必多说,网上随意可找到解释,还是比较简单的,重点在于我要练习go语言的使用,所以实现了go语言版本。package mainimport "fmt"//循环二分法查找func binarySearch(s []int, target int) int { low, high := 0, len(s) for { if low >= high { ...原创 2018-04-02 16:10:51 · 737 阅读 · 0 评论