摘要:
网络上能搜索到的资料里,关于Java到底是值传递还是引用传递的讨论是比较多的,也没有一个特别被大家认可的结论。 因为最近一两年转到了Golang的开发,接触到了比较多的指针的玩法,突然对Java的引用传递和值传递又有了一定的兴趣。 但是我无意于讨论Java到底是值传递还是引用传递,我只是记录一下,避 阅读全文
摘要:
题目链接 这题本身就是一个排序题,按照学生成绩排序,成绩一样的按照输入的前后顺序排。 如果用Java,那么利用ArrayList能很轻松的完成: import java.util.ArrayList; import java.util.Comparator; import java.util.Lis 阅读全文
摘要:
题目链接 题倒是很简单,最开始用了这么一种解法: package main import "fmt" func main() { a := 0 fmt.Scan(&a) str := fmt.Sprintf("%b", a) fmt.Printf("%d", convert(str)) } func 阅读全文
摘要:
题目链接 题目本身不难,但是牛客的输入样例很坑,因此只好使用bufio来进行输入了: package main import ( "bufio" "fmt" "os" "strings" ) func main() { input := bufio.NewScanner(os.Stdin) inpu 阅读全文
摘要:
题目链接 简单的说这题就是字符串去重以后检查长度。如果用Java的话,可以遍历字符串,然后利用Set来进行去重,最后统计Set的size就可以了。但是如果是Go语言,则稍微麻烦点。基本思路就是用map,对于map中不存在的元素,添加,然后计数器加1: package main import ( "f 阅读全文
摘要:
题目链接 这题最开始的想法就是用一个map来解决问题: func main() { num := 0 fmt.Scan(&num) a := 0 b := 0 m := make(map[int]int) for i := 0; i < num; i++ { fmt.Scan(&a) fmt.Sca 阅读全文
摘要:
题目链接 这道题本身更多的是考察如何计算一个数的质数因子,更像是一道数学题,用到了循环的方法: package main import ( "fmt" "math" ) func main() { a := 0 fmt.Scan(&a) end := math.Sqrt(float64(a)) fo 阅读全文
摘要:
题目链接 基本上能用最简单代码实现的,就不要考虑的太复杂: package main import "fmt" func main() { a := 0 fmt.Scanf("0x%x", &a) fmt.Printf("%d", a) } 阅读全文
摘要:
题目链接 这个题目本身基本上是对语言熟悉程度的考察,没有什么别的逻辑可言: package main import ( "fmt" "strings" ) func main() { var a string fmt.Scan(&a) for len(a) > 0 { if len(a) == 8 阅读全文
摘要:
题目链接 这题有两个要编码解决的问题,首先是去重,其次是排序。 最开始想着就用Java的TreeSet解决了,简单好用,去重排序都一并解决了,编码只需要考虑input的逻辑就可以,代码如下: import java.util.Scanner; import java.util.Set; import 阅读全文
摘要:
本题的链接:BM51 数组中出现次数超过一半的数字 题目很好理解,思路也很简单,只需要遍历数组,将所有的元素出现的次数用Map记录下来就可以,最后遍历Map,找到那个出现次数超过数组长度一半的元素打印就可以: package main /** * * @param numbers int整型一维数组 阅读全文
摘要:
本题的链接:BM50 两数之和 最初拿到这个题目首先想到的就是两个指针,然后向后遍历,于是写出来的代码也简明易懂: package main /** * * @param numbers int整型一维数组 * @param target int整型 * @return int整型一维数组 */ f 阅读全文
摘要:
1. 建造者模式可以解决什么问题 我家里有各种形状的瓷器,盘子或者碗。虽然形状不同,但是所用的材料基本上是一样的,比如土、水、釉、彩这些基本的东西。 但是做不同款式的瓷器,方法是不同的。假如说我现在已经写好了一段代码来生成白瓷碗和白瓷盘,正常运行起来了,这倒也没什么,可是,如果我现在要增加一个工作, 阅读全文
摘要:
问题的提出 阅读别人代码的时候最讨厌遇到的就是大段大段的if-else分支语句,一般来说读到下面的时候就忘了上面在判断什么了。很多资料上都会讲到使用策略模式来改进这种代码逻辑。 策略模式的类图如下: 只需要按照这个图写代码就可以了。 策略模式代码的实现 借助Spring框架我们能够轻松的实现策略模式 阅读全文
摘要:
求解一个整数的平方根最简单的办法就是用库函数。 但是如何不用库函数就求解呢? 1. 二分法 我们都知道5的平方根是2.236。如果要求对平方根取整,那么就是2,我们的目的就是在{1,2,3,4,5}这样一个数组中找到2。 这是一个典型的查找的需求,我第一时间想到的查找算法就是二分法。 设left=1 阅读全文