社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
// 实现下面这个翻转二叉树的函数
// 要达到的效果是这样
// 翻转之前:
// 1
// /
// /
// 2 3
// / /
// 4 5 6 7
// 翻转之后:
// 1
// /
// /
// 3 2
// / /
// 7 6 5 4
// 给定的二叉树不一定是满的
type TreeNode struct {
Value interface{}
Left *TreeNode
Right *TreeNode
}
func InvertBinaryTree(root *TreeNode) {
// write your code here
}
function fibonacci(n) {
if (n === 0 || n === 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
class Fibonacci {
public static int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
}
3.用你熟悉的语言写一个程序,找出数组中差值为 k 的 数共有几对
示例:
差值 k=4
,数组是 [7, 6, 23,19,10,11, 9, 3, 15]
结果是 (7,11) (7,3) (6,10) (19,23) (15,19) (15,11) 共6对
function countPairsWithDifference(arr, k) {
// 实现
}
countPairsWithDifference([7, 6, 23,19,10,11, 9, 3, 15], 4)
// 返回 6
class Main {
public static int countPairsWithDifference(int[] arr, int k) {
// 实现
}
public static void main (String[] args) throws java.lang.Exception {
int[] arr = {7, 6, 23,19,10,11, 9, 3, 15};
// 返回 6
countPairsWithDifference(arr, 4);
}
}
4.HTTP GET 和 POST 方法有什么区别?谈谈你对 RESTful 的理解
5.- 请写出一个 git 命令,撤销前一个提交
请问 fork 一个 git 仓库后,如何跟上游同步
如果代码分支像下面这样:
A---B---C topic
/
D---E---F---G master
请画出git rebase master topic 命令后的结果
你用过 git rebase -i 参数吗?使用git rebase -i后哪一个命令可以达到squash的效果
6.假设货币有 1,5,10 三种面额,写一个函数,输出所有总和为 N 的货币的组合;
例如,额度是 12,有如下几种方案:
假设一个场景,比如淘宝,用户加入购物车行为记录是用什么方式保存,尝试不同的方式,阐述各自方案的利弊
以下代码有什么问题,说明原因。
type student struct {
Name string
Age int
}
func pase_student() {
m := make(map[string]*student)
stus := []student{
{Name: "zhou", Age: 24},
{Name: "li", Age: 23},
{Name: "wang", Age: 22},
}
for _, stu := range stus {
m[stu.Name] = &stu
}
}
考点:foreach
解答:
这样的写法初学者经常会遇到的,很危险! 与Java的foreach一样,都是使用副本的方式。所以m[stu.Name]=&stu实际上一致指向同一个指针, 最终该指针的值为遍历的最后一个struct的值拷贝。 就像想修改切片元素的属性:
func main() {
runtime.GOMAXPROCS(1)
wg := sync.WaitGroup{}
wg.Add(20)
for i := 0; i < 10; i++ {
go func() {
fmt.Println("A: ", i)
wg.Done()
}()
}
for i := 0; i < 10; i++ {
go func(i int) {
fmt.Println("B: ", i)
wg.Done()
}(i)
}
wg.Wait()
}
考点:go执行的随机性和闭包
解答:
谁也不知道执行后打印的顺序是什么样的,所以只能说是随机数字。 但是A:均为输出10,B:从0~9输出(顺序不定)。 第一个go func中i是外部for的一个变量,地址不变化。遍历完成后,最终i=10。 故go func执行时,i的值始终是10。
第二个go func中i是函数参数,与外部for中的i完全是两个变量。 尾部(i)将发生值拷贝,go func内部指向值拷贝地址。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!