LeetCode Top 100 Liked Questions in Golang(updating...)
leetcode go语言版本,主要为了熟悉下语言
1. Two Sum
双指针版本, O(NlogN)
func twoSum(nums []int, target int) []int {
valResult := []int{}
indexResult := []int{}
i := 0
j := len(nums) - 1
temp := make([]int, len(nums))
copy(temp, nums)
sort.Ints(temp)
for i < j {
if temp[i] + temp[j] < target {
i++
} else if temp[i] + temp[j] > target {
j--
} else {
valResult = append(valResult, temp[i], temp[j])
break
}
}
for i := 0; i < len(nums); i++ {
if nums[i] == valResult[0] || nums[i] == valResult[1] {
indexResult = append(indexResult, i)
}
}
return indexResult
}
hash查找版本,理论O(N)
func twoSum(nums []int, target int) []int {
hash := make(map[int]int)
result := []int{}
for i := 0; i < len(nums); i++ {
if j, ok := hash[target - nums[i]]; ok {
result = append(result, j, i)
return result
}
hash[nums[i]] = i
}
return result
}
2. Add Two Numbers
要想办法把代码写简洁...不要好几个循环判断...
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
dummy := ListNode{}
p := &dummy
carry := 0
for l1 != nil || l2 != nil || carry != 0 {
p.Next = &ListNode{}
p = p.Next
tempVal := carry
if l1 != nil {
tempVal += l1.Val
l1 = l1.Next
}
if l2 != nil {
tempVal += l2.Val
l2 = l2.Next
}
p.Val = tempVal % 10
carry = tempVal / 10
}
return dummy.Next
}
3. Longest Substring Without Repeating Characters
hash里面存byte可解决英文字符,存rune中文也可处理...
func lengthOfLongestSubstring(s string) int {
hash := make(map[rune]int)
left := 0
result := 0
for i, v := range []rune(s) {
if lastI, ok := hash[v]; ok && lastI >= left {
left = lastI + 1
}
if result < (i - left + 1) {
result = i - left + 1
}
hash[v] = i
}
return result
}
LeetCode Top 100 Liked Questions in Golang(updating...)的更多相关文章
- [LeetCode] Top 100 Liked Questions
[LeetCode] Top 100 Liked Questions # Title Acceptance Difficulty 1 Two Sum 38.80% Easy 2 Add Two Num ...
- LeetCode面试常见100题( TOP 100 Liked Questions)
LeetCode面试常见100题( TOP 100 Liked Questions) 置顶 2018年07月16日 11:25:22 lanyu_01 阅读数 9704更多 分类专栏: 面试编程题真题 ...
- LeetCode Top 100 Liked 点赞最高的 100 道算法题
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:刷题顺序,刷题路径,好题,top100,怎么刷题,Leet ...
- leetcode top 100 题目汇总
首先表达我对leetcode网站的感谢,与高校的OJ系统相比,leetcode上面的题目更贴近工作的需要,而且支持的语言广泛.对于一些比较困难的题目,可以从讨论区中学习别人的思路,这一点很方便. 经过 ...
- LeetCode Top Interview Questions
LeetCode Top Interview Questions https://leetcode.com/problemset/top-interview-questions/ # No. Titl ...
- 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...
- 2014 年最热门的国人开发开源软件TOP 100
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外认可.中国是开 ...
- 2014年国人开发的最热门的开源软件TOP 100
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...
- 【分享】2017 开源中国新增开源项目排行榜 TOP 100
2017 年开源中国社区新增开源项目排行榜 TOP 100 新鲜出炉! 这份榜单根据 2017 年开源中国社区新收录的开源项目的关注度和活跃度整理而来,这份最受关注的 100 款开源项目榜单在一定程度 ...
随机推荐
- 延迟对象deferred
Twisted 官方称,“Twisted is event-based, asynchronous framework ”.这个“异步”功能的代表就是 deferred. deferred 的作用类似 ...
- 后缀数组(SA)及height数组
最近感觉自己越来越蒟蒻了--后缀数组不会,费用流不会-- 看着别人切一道又一道的题,我真是很无奈啊-- 然后,我花了好长时间,终于弄懂了后缀数组. 后缀数组是什么? 后缀SASASA数组 给你一个字符 ...
- [编织消息框架][传输协议]sctp简单开发
jdk1.7支持sctp协议,需要linux安装sctp支持库 测试代码 public class ServerSCTP { static int SERVER_PORT = 3456; static ...
- SQL的特点
1.综合统一 2.高度非过程化 3.面向集合的操作方式 4.一同一种语法结构提供两种使用5.语言简洁易学易用
- (转载)JavaScript世界万物诞生记
一. 无中生有 起初,什么都没有.造物主说:没有东西本身也是一种东西啊,于是就有了null: 现在我们要造点儿东西出来.但是没有原料怎么办?有一个声音说:不是有null嘛?另一个声音说:可是null代 ...
- python—时间与时间戳之间的转换
python-时间与时间戳之间的转换 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块 ...
- 装配SpringBean(三)--XML方式实例
前一篇文章中已经介绍了XML方式装配bean的方式,本文将综合这些方式举一个实例并进行测试,我会把所有类型的参数都放在同一个类中进行测试,下面是我的类结构: 上图是我画的一个基本结构,可以看出该类中有 ...
- PAT甲级——A1044 Shopping in Mars
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diam ...
- 【Streaming】Storm内部通信机制分析
一.任务执行及通信的单元 Storm中关于任务执行及通信的三个概念:Worker(进程).Executor(线程)和Task(Spout.Bolt) 1. 一个worker进程执行的是一个Topol ...
- Oracle时间日期处理方法
https://www.cnblogs.com/plmm/p/7381496.html 1.用于截取年.月.日.时.分.秒 extract()函数 extract(year from sysdate) ...