第二十天

感冒了,这两天没写多少

文章目录

    • 319. Bulb Switcher
    • 322. Coin Change
    • 324. Wiggle Sort II
  • 328. Odd Even Linked List

319. Bulb Switcher

有n盏灯,在时间1的时候把所有灯打开;在时间2的时候每隔1盏灯把灯熄灭;时间3的时候每隔两盏灯按动开关,使得原来关的灯打开,原来开的的灯熄灭。到时间n的时候把按最后一盏灯的开关。

一开始所有灯都是处于关闭的状态的,我们以第12展灯为例。在1,2,3,4,6 ,12的时候都被按动了一次开关,一共6次,所以最后应该关着的。、

而如果是开着的,那么因子应该有奇数个,类似于16这种,1,2,4,8,16,所以这题就是统计n以内的完全平方数。

代码如下:、

class Solution(object):def bulbSwitch(self, n):""":type n: int:rtype: int"""return int(n**0.5)

322. Coin Change

给定一个列表,里面是硬币的面值,给定一个数,求他能被最少枚数的硬币组成的数量。

Example 1:

Input: coins = [1, 2, 5], amount = 11
Output: 3
Explanation: 11 = 5 + 5 + 1

可以用动态规划做,dp[11] = min(dp[10], dp[9], dp[6])

对于dp[n]来说,dp[n] = min(dp[n-j] for j in coins if j <= n)

所以代码如下:

class Solution(object):def coinChange(self, coins, amount):""":type coins: List[int]:type amount: int:rtype: int"""if amount < min(coins) and amount>0:return -1res = [amount//min(coins)+1] * (amount+1)res[0] = 0for i in range(len(res)):res[i] = min([res[i-j]+1 for j in coins if j<=i]+[res[i]])return res[-1] if res[-1] < amount//min(coins)+1 else -1

324. Wiggle Sort II

给定一个序列,按照nums[0] < nums[1] > nums[2] < nums[3]....的顺序排列。

我们可以看到其实可以拆成两个子序列。

其中nums[0]>nums[2]>..以及nums[1]>nums[3]……

然后又有nums[1]>nums[0]

其中一个做法就是将大的值都搁在奇数位,小的搁在偶数位。

代码如下:

class Solution(object):def wiggleSort(self, nums):""":type nums: List[int]:rtype: None Do not return anything, modify nums in-place instead."""nums.sort()half = len(nums[::2])nums[::2], nums[1::2] = nums[:half][::-1], nums[half:][::-1]

328. Odd Even Linked List

给定一个链表,将顺序在偶数的节点都放在奇数节点的后面

Example 1:

Input: 1->2->3->4->5->NULL
Output: 1->3->5->2->4->NULL

Example 2:

Input: 2->1->3->5->6->4->7->NULL
Output: 2->3->6->7->1->5->4->NULL

其实很简单,控制两个指针,一个奇数指针一个偶数指针,然后都往后走两步,这样就得到了一个奇数链表一个偶数链表,然后合起来就可以了。

代码如下:

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution(object):def oddEvenList(self, head):""":type head: ListNode:rtype: ListNode"""if not head or not head.next:return headeven = headodd = head.nextehead = oddwhile even.next and odd.next:even.next = even.next.nextodd.next = odd.next.nexteven = even.nextodd = odd.nextif not odd or not odd.next:breakeven.next = eheadreturn head

11月27号,11月28号 319, 322, 324,328相关推荐

  1. [幻灯更新]9月27日-9月28日剔除“伪创新”和“无领域”的领域驱动设计-网络公开课

    如果有人不了解人体的内部结构,就自称医生,声称自己能给人开腹割掉发炎的阑尾,甚至还能开胸给冠心病人做心脏搭桥,你信吗? 如果我自己或者家人是病人,我肯定不会让这样的医生动手术,因为没准一刀进去就切动脉 ...

  2. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(2月27日-3月4日)

    分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(2月27日-3月4日) 本周Silverlight学习资源更新 Silverlight实用窍门系列:57.Sil ...

  3. 分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(5月27日-6月3日)

    分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(5月27日-6月3日) 本周Silverlight学习资源更新 XAML实例教程系列 - 命名空间(NameSpac ...

  4. 赛尔号服务器维护时间4月27,赛尔号4月27日更新内容 赛尔号4月27日攻略大全

    赛尔号4月27日更新内容 赛尔号4月27日攻略大全 终结!上古传说! 据说在巴斯星的上古龙殿的遗址,存在着龙族最强大的能量!正义的势力能战胜帕罗狄亚吗?赛尔们!巴斯星集合! 折翼的圣光天马 受伤的圣光 ...

  5. 活动预告+征集讲师和话题:iOS/Android DevCamp | CMDN CLUB移动开发者俱乐部清凉夏日嘉年华 | 7月27日 7月28日 | 北京...

    CSDN正在策划一个针对移动开发者的技术交流会议,希望能得到各位技术大牛的意见. iOS/Android DevCamp | CMDN CLUB移动开发者俱乐部清凉夏日嘉年华 iOS DevCamp ...

  6. 美通社日历 | 媒体关注、会展信息、企业财报发布,节假日备忘(7月27日—8月1日)...

           7月27日 Realme真我V5手机发布 以下上市公司公布业绩和财务信息: 路易威登(LOUIS VUITTON) SAP 恩智浦(NXP) 印度工业信贷投资银行(ICICI) 西麦斯( ...

  7. 4月27日-5月3日 记

    五一长假,放九天假的我.思量思量这一周的事,磨叽磨叽. 周一体检的事我就不说了,反正也就是那样,没啥好说的. 周二,妈妈不放心,因为血压高嘛,下午请假去医院检查一番,得到的结论是."没啥事, ...

  8. 4月27日—5月1日四年级课程表

    四年级课程表 [请各位家长注意翻看课程表下方学习指导] 时间 周一 周二 周三 周四 周五 9:00-9:25 语文 数学 语文 数学 英语 9:30-9:40 眼操 眼操 眼操 眼操 眼操 9:40 ...

  9. 4月27日----5月1日二年级课程表

    **二年级课程表 时间 周一 周二 周三 周四 周五 9:00-9:25 语文 数学 语文 数学 心灵手巧 9:30-9:40 眼操 眼操 眼操 眼操 眼操 9:40-10:00 运动 运动 运动 运 ...

最新文章

  1. Redis配置不当可导致服务器被控制,已有多个网站受到影响 #通用程序安全预警#...
  2. 制表符补全位数在idea和eclipse中的区别
  3. 修改docx表格_实例29_在Word表格中将上下行相同内容的单元格自动合并
  4. UIView Methods
  5. 高斯滤波详解 python实现高斯滤波
  6. bbs.php168,PHP168 下载安装教程
  7. mac电脑上如何看java jdk文档
  8. Python常用的第三方模块(python第三方库)
  9. 全链路压测及阿里全链路压测详解
  10. 社区团长资金分账该如何高效解决呢?
  11. 看中国魅力女强人 访格力电器总裁董明珠
  12. rgb转换 css 字体
  13. 爱因斯坦:三篇著名演讲
  14. 利用python进行显著性分析
  15. win7无损分区和硬盘分区调整合并
  16. AutoJs学习-MC我的世界自动钓鱼
  17. Predis的一些操作汇总
  18. 时间戳和时间字符串互转
  19. centos搭建简单自用syslog服务器
  20. Java反射机制的学习(转)

热门文章

  1. git常用操作与在gitlab上进行MergeRequest(git rebase)
  2. Logo(图片)作为报表水印的解决方法
  3. 香港岭南大学开通CnOpenData试用
  4. Python实现图片添加水印(支持中文、英文和图片)
  5. python做大数据可视化软件_一般用哪些工具做大数据可视化分析?
  6. 【181130】VC++ 模拟地球太阳月亮运动的过程源代码
  7. 利用Visio绘制数据流图
  8. 数字IC设计文章汇总
  9. PTA-判断输入的字符是哪种类型
  10. 关于《佛本是道》的一些看法