Go语言中文网 为您找到相关结果 6

基本排序算法(Golang实现)

冒泡排序 func BubbleSort(vector []int) { fmt.Println("BubbleSort") fmt.Println(vector) for i := 0; i < len(vector); i++ { tag := true // 为了剪枝 // 每一趟将最大的数冒泡 for j := 0; j < len(vector)-i-1; j++ { if vector[j] > vector[j+1] { /*vector[j] < vector[j+1]*/ temp := vector[j] vector[j] = vector[j+1] vector[j+1] = temp tag = false } } if tag { break //0~len(ve...阅读全文

博文 2014-11-13 08:00:02 xlplbo

2015 南阳 CCPC hdu 5546 Ancient Go(DFS,暴力)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5546 题目大意: 我方棋子是'x',敌方是'o'。现在轮到我方落子,问我方能不能在下一回合吃掉对方的至少一个棋子。 吃掉的规则是:对方被围的棋子在下一回合时已经找不到为' . '的位置。 范围:棋盘大小9*9。 思路: 由于棋盘大小只有9*9,所以我们可以直接暴力枚举'o',对于一个'o'看他四周是否已经被3个及以上的'x'占领。如果多个'o'连在一起,就将其加进去,判断的条件是这个连通块里面是否超过2个'.',如果超过就不能吃掉棋子。否则就直接是可以了。 一个剪枝是:对于这些被访问的'o'进行标记,如果已经访问过就不再去搜了。 代码: #include #include阅读全文

博文 2016-01-28 20:00:01 aaaaacmer

基本排序算法Golang

摘要 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 冒泡排序 1 func BubbleSort(vector []int) { 2 fmt.Println("BubbleSort") 3 fmt.Println(vector) 4 for i := 0; i < len(vector); i++ { 5 tag := true // 为了剪枝 6 // 每一趟将最大的数冒泡 7 for j := 0; j < len(vector)-i-1; j++ { 8 if vector[j] > vector[j+1] { /*vector[j] < vector[j+1]*/ 9 temp :=...阅读全文

博文 2016-06-30 10:00:00 borey

Golang语言常用算法

在学习golang语言,文档看的实在是乏味,就想着把常用的算法做个实现,边写变学习,想来效果还是不错的! 1. 堆排序 package main import "fmt" func buildHeap(array []int, length int) { var i, j int; for i = 1; i < length; i = i + 1 { for j = i; j > 0 && array[j] > array[(j-1)/2]; j = (j - 1)/2 { array[j], array[(j-1)/2] = array[(j-1)/2], array[j] } } } func heapSort(array []int, length int) { array[0], a...阅读全文

博文 2017-05-15 02:42:13 Diogoxiang

leetcode_22

Golang: 思路:还是递归吧,题目做少了还是很难想出思路的,但不想就直接看别人的,那你肯定进步不大。这题关键点在于想通这是个深度优先加回溯加剪枝,就没了。剪枝,当右括号的数目大于左括号,那就剪枝,当左括号大于n,剪枝。 代码如下: func generateParenthesis(n int) []string { var res []string getResults(2*n,&res,"",0,n) return res } func getResults(n int,res *[]string,temp string,flag int,left int){ if len(temp)==n{ *res=append(*res, temp) return } if flag>=0&&l...阅读全文

博文 2020-02-03 19:32:42 淳属虚构

leetcode_47

Golang: 写在前面:这题如果是用我46的代码是改不出来的,除非得到所有结果再去删除重复的,但这样自然就没什么意思了,我在这道题上花了差不多整整半天,去研究了深度优先、回溯和剪枝,并试图应用进我的代码里,但最终还是失败了。 思路:可以参见liweiwei大佬的题解,很有帮助。我只在这里描述下我上一题的代码为什么无法应用在这一次的题里。我上一题的解法是,如果有[1,2,3,4,5]这样的数组,我在第一轮的起始数组分别是[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[4,2,3,1,5]等。即我每次会将第i位和第1位互换,这在全排列里是行得通的。而深度优先加回溯第一轮的起始数组是[1,2,3,4,5],[2,1,3,4,5],[3,1,2,4,5],[4,1,2,3...阅读全文

博文 2020-01-31 18:32:39 淳属虚构