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 款开源项目榜单在一定程度 ...
随机推荐
- /etc/sysctl.conf配置文件
# vi /etc/sysctl.conf # add by digoal.zhou fs.aio-max-nr = fs. kernel.core_pattern= /data01/corefile ...
- ROS urdf和xacro文件详解
视觉标签:visual <visual> <origin xyz="0.0 0.0 0.0" /> <geometry> <box siz ...
- webpack处理字体文件
1. 安装 file-loader npm install file-loader --save-dev 2. 在webpack.config.js中配置 module.exports={ //... ...
- 3377加减乘除等于24(原生js实现)
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 如何处理HTML5新标签的浏览器兼容问题?
方法一 : 1.使用静态资源的html5shiv包 <!--[if lt IE9]> <script src="http://cdn.static.runoob.com/l ...
- vue如何发请求
1.vue 支持开发者引入 jquery 使用 $.ajax() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1.首先,在 package.json 中添加 j ...
- web前端学习(四)JavaScript学习笔记部分(8)-- JavaScript瀑布流
index.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&qu ...
- [转]json对象详解
json(javascript object notation)全称是javascript对象表示法,它是一种数据交换的文本格式,而不是一种编程语言,用于读取结构化数据.2001年由Douglas C ...
- GIT → 02:Git和Svn比较
2.1 SVN介绍 2.1.1 SVN简介 SVN 属于集中式版本管理控制系统,服务器中保存了所有文件的不同版本,而协同工作人员通过连接svn服务器,提取出最新的文件,获取提交更新.Subversio ...
- neo4j中对节点关系和聚类的思考
由于neo4j在查找过程中具有事务,所以查询的速度非常慢!给出的建议如下: 一,将所有查询放在一个Session中,当所有查询完毕以后在关闭Driver和Session: 二,使用neo4j连接池,使 ...