1、(41) 最大子数组
描述:给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。
注意事项:子数组最少包含一个数
样例:给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6
挑战 :要求时间复杂度为O(n)
标签 :贪心 领英 子数组 数组 LintCode 版权所有 枚举法

    def maxSubArray(self, nums):max_number = nums[0]sum = 0for i in nums:sum += imax_number = max(max_number, sum)sum = max(sum, 0)return max_number

2、(167)链表求和
描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例:给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null
标签:链表 Cracking The Coding Interview 高精度

    def addLists(self, l1, l2):add=0cur1,cur2=l1,l2l3 = ListNode(-1)pre = l3while cur1 or cur2:if cur1 and cur2:temp = (cur1.val + cur2.val +add)cur1=cur1.nextcur2 =cur2.nextelif cur1:temp = (cur1.val+add)cur1 = cur1.nextelse:temp = (cur2.val+add)cur2 = cur2.nextadd = temp//10pre.next = ListNode(temp%10)pre = pre.nextif add==1:pre.next = ListNode(1)return l3.next

3、(413)反转整数
(http://blog.csdn.net/guoziqing506/article/details/51563779)
描述:将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例:
给定 x = 123,返回 321
给定 x = -123,返回 -321

    def reverseInteger(self, n):max_int = 2147483647  temp = abs(n)  result = 0  while temp > 0:  result *= 10  result += temp % 10  if result > max_int:  return 0  temp = temp // 10  #整数除法,‘/’浮点型return result if n >= 0 else -result  

4、(46)主元素
描述:给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。
样例:给出数组[1,1,1,1,2,2,2],返回 1

    def majorityNumber(self, nums):nums.sort()index = 0value = nums[0]count = 0while index<len(nums):if nums[index]==value:count+=1index+=1if count > len(nums)/2:return valueelse:value=nums[index]index+=1count= 1#判断出不相等,已经有一个计数了

别人的,果然不是我这种菜鸟能比的呀。但是我觉得我的简洁明了,哈哈哈
http://blog.csdn.net/guoziqing506/article/details/51434299

    def majorityNumber(self, nums):  ele = nums[0]  count = 0  for i in nums:  if ele == i:  count += 1  else:  count -= 1  if count <= 0:  ele = i  return ele 

5、407. 加一
描述:给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。
样例: 给定 [1,2,3] 表示 123, 返回 [1,2,4].
给定 [9,9,9] 表示 999, 返回 [1,0,0,0].

        index = -1count =0if digits[-1]!=9:digits[-1]+=1return digitselse:while digits[index]==9 and abs(index)<=len(digits)+1:count += 1index-=1if count==len(digits):digits.append(0)digits[0]=1for i in range(1,len(digits)-1):digits[i]=0else:digits[index] += 1for j in range(index+1,0,1):digits[j]=0return digits

感觉特别的繁琐

result = []n = len(digits) - 1add1 = 1while n >= 0:temp = digits[n] + add1result.insert(0, temp % 10)add1 = temp // 10n -= 1if add1 == 1:result.insert(0, 1)return result

这是别人的,不看不知道,一秒成渣啊
6、35. 翻转链表
描述:翻转一个链表
样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
挑战 :在原地一次翻转完成
标签 :链表 优步 脸书
分析:题目要求原地翻转,如果不做要求,我们可以建一个空链,依次摘链,添加
原地翻转,依次摘链,链接

"""
Definition of ListNodeclass ListNode(object):def __init__(self, val, next=None):self.val = valself.next = next
"""class Solution:"""@param: head: n@return: The new head of reversed linked list."""def reverse(self, head):if head == None:return headdummy=ListNode(0)dummy.next = headpre =headcur =head.nextwhile cur:temp = curpre.next=cur.nextcur = cur.nexttemp.next = dummy.nextdummy.next = tempreturn dummy.next

123,从2开始摘链,依次向前添加
7、165. 合并两个排序链表
描述:将两个排序链表合并为一个新的排序链表
样例:给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。
标签 : 领英 链表
分析:两个指针遍历,(1)如果l1>l2,添加,改变pre,next节点,两个指针都要移动。(2)else,移动l2的指针,接着比较。如果l1遍历完了,l2还有数据,直接接上就行

    def mergeTwoLists(self, l1, l2):dummy=ListNode(0)cur1,cur2=l1,l2pre = dummydummy.next=l1while cur1 and cur2:if cur1.val>=cur2.val:temp = cur2cur2=cur2.nextpre.next = temppre = temptemp.next = cur1else:pre = pre.nextcur1 = cur1.nextif cur2:#如果l2还有数据,直接链表连接pre.next = cur2return dummy.next

8、(491) 回文数
描述:判断一个正整数是不是回文数。
回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。
注意事项:给的数一定保证是32位正整数,但是反转之后的数就未必了。
样例:
11, 121, 1, 12321 这些是回文数。
23, 32, 1232 这些不是回文数。
标签 :字符串处理 整数
分析:现将数字按列表存放
判断中位之前和之后的数字是否对应相等

    def isPalindrome(self, num):a = []while num>0:temp = num%10a.insert(0,temp)num = num//10n = len(a)-1index = 0while index<=n//2:if a[index]==a[n-index]:index+=1else:breakif index-1==n//2:return True#注意注意 不知道怎么改简洁else:return False

lintcode 简单篇(二)相关推荐

  1. iOS开发UI篇—Quartz2D简单使用(二)

    iOS开发UI篇-Quartz2D简单使用(二) 一.画文字 代码: // // YYtextview.m // 04-写文字 // // Created by 孔医己 on 14-6-10. // ...

  2. 《高性能javascript》 领悟随笔之-------DOM编程篇(二)

    <高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  3. 一台电脑怎么接两个显示器_电脑数码类目显示器 篇二:11.11抄作业,个人消费级显示器怎么选--20款好价显示器推荐_显示器...

    2020-11-09 21:56:2572点赞390收藏91评论 想攒一台电竞主机.家用主机.酷炫主机无从下手?想省钱又怕性能不达标?值得买帮你打造定制化DIY装机工具,自助全网比价装机,提供最适合的 ...

  4. 【word2vec】篇二:基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型

    文章目录 CBOW 模型 基本结构 目标函数 梯度计算 Skip-gram 模型 基本结构 梯度计算 优缺点分析 系列文章: [word2vec]篇一:理解词向量.CBOW与Skip-Gram等知识 ...

  5. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  6. 一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)

    涤生_Woo 2017年11月11日阅读 15544 关注 一篇文章带你熟悉 TCP/IP 协议(网络协议篇二) 同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍. 一图看完本文 一. 计算机 ...

  7. WebSocket简单使用(二) - 客户端

    WebSocket简单使用(二) - 客户端 原文 http://www.oseye.net/user/kevin/blog/79 关于WebSocket我打算分如下几篇博文来探探路: WebSock ...

  8. 国内外物联网平台初探(篇二:阿里云物联网套件)

    国内外物联网平台初探(篇二:阿里云物联网套件) ------ [导读]------ 物联网智库将于本周开始,在每周五下午的第二篇文章推送由马智先生研究撰写的系列文章--<国内外物联网平台初探&g ...

  9. 【专栏】国内外物联网平台初探(篇二:阿里云物联网套件)

    [专栏]国内外物联网平台初探(篇二:阿里云物联网套件) 作者:马智 物联网智库 整理发布 转载请注明来源和出处 ------ [导读]------ 物联网智库将于本周开始,在每周五下午的第二篇文章推送 ...

最新文章

  1. JAVA之门面模式概述
  2. 【LeetCode】two num 利用comparable接口 对对象进行排序
  3. iOS - 让view触发点击事件
  4. STM32——库函数开发小结
  5. EF – 8.多对多关联
  6. 数据挖掘引入:基础知识
  7. django 文件上传 研究
  8. python 检查代码规范_Python代码规范检测
  9. 【Loss】深度学习的多个loss如何平衡?
  10. 修复Mac上的“ Safari无法找到服务器”错误的解决方法
  11. SQLPro Studio mac如何链接MYSQL?
  12. PHP接口报错:Malformed UTF-8 characters, possibly incorrectly encoded
  13. 长文解读:迟到的Libra与即将到来的Commodity 2.0
  14. 使用Spider提取数据(爬取起点中文网)
  15. 二分图最大匹配(最大流)
  16. smart原则_目标管理:OKR与SMART原则的异同
  17. 一级计算机脚注怎么加,word怎么插入脚注 word添加脚注图文教程
  18. Orcle中Database Control - orcl打开错误或者打不开的解决办法
  19. MP4文件格式详解——元数据moov(一)mvhd box
  20. AutoCAD2012从入门到精通中文视频教程 第24课 路径阵列(个人收藏)

热门文章

  1. 51智能小车超声波避障
  2. 科技岗位日趋增长,能成为女性职业选择的新可能吗?
  3. PointPainting 复现
  4. ubuntu解决“系统的网络服务与此版本的网络管理器不兼容“问题
  5. 群控系统服务器配置,群控服务器配置
  6. 2015校招名企offer薪资大曝光
  7. android手机可以换字体吗,Android手机字体随意换-字体管家
  8. 如何从Mac到HomePod播放音频
  9. 国企普通员工如何才能成为公务员,这三种途径可供参考
  10. Python 常用模块总结