78. 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
https://leetcode-cn.com/problems/subsets/description/
思路:获得一个nums作为列表,n=len(nums)相当于这个列表中元素的个数。n个元素的列表,它的组合一共有2**n种。这时联想到二进制表达。遍历2**n,把每个值转化为二进制,就可以代表原来的nums中,相应位置的元素要不要在结果列表中体现。
class Solution:
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
binnums=2**len(nums)
result=[]
for i in range(binnums):
mask=str(bin(i)).replace('0b','')
mask='0'*(len(nums)-len(mask))+mask
thisone=[]
for j in range(len(mask)):
if mask[j]=='1':
thisone.append(nums[j])
result.append(thisone)
return result
59. 螺旋矩阵 II
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
https://leetcode-cn.com/problems/spiral-matrix-ii/description/
思路:这么恶心的题目,我已经不想多说了,做到想吐!可能是我算法不够好,感觉这一段就是代码届的苦力代表。
class Solution(object):
def generateMatrix(self, n):
result=[[0 for i in range(n)] for j in range(n)]
numlist=[]
for i in range(1,n**2+1):
numlist.append(i)  
k=0
while len(numlist)>0:
for item in range(k,n-k):
result[k][item]=numlist[item-k]
numlist=numlist[n-2*k:]
for item in range(k+1,n-k):
result[item][-k-1]=numlist[item-1-k]
numlist=numlist[n-1-2*k:]
for item in range(k+1,n-k):
result[-k-1][-1-item]=numlist[item-1-k]
numlist=numlist[n-1-2*k:]
for item in range(k+1,n-1-k):
result[-item-1][k]=numlist[item-1-k]
numlist=numlist[n-2-2*k:]
k+=1
return result

转载于:https://www.cnblogs.com/codeinpy/p/9344582.html

python_day_5:20180720相关推荐

  1. 3个方法解决百度网盘限速 (2018-07-20)

    3个方法解决百度网盘限速 (2018-07-20) 参考文章: (1)3个方法解决百度网盘限速 (2018-07-20) (2)https://www.cnblogs.com/davygeek/p/9 ...

  2. iis 程序池设置及详解-20180720

    [非原创,好文收藏,分享大家] 公司的一个网站程序长时间运行后,速度变慢,重新启动网站后速度明显变快,估计是网站程序占用的内存和CPU资源没能及时释放,才需要每隔一段时间重启网站释放资源.但手工重启总 ...

  3. 2018-07-20

    在将训练好的模型转换为.tflite格式要经过两个步骤,首先是进行freeze_graph转换为.pb格式,再进行toco转换为.tflite格式.第一步进行freeze的时候不管是使用训练的grap ...

  4. python全栈开发-基本数据类型2 python_day_5

    今日大纲: 1. dict 用大括号{} 括起来. 内部使用key:value的形式来保存数据 {'jay':'周杰伦', "jj":'林俊杰'} 注意:字典的key必须是可哈希的 ...

  5. linux7设置时间,CentOS 7 设置日期和时间

    现代操作系统分为以下两种类型的时钟: 实时时钟(Real-Time Clock,RTC),通常称为硬件时钟(一般是系统主板上的集成电路),它完全独立于操作系统的当前状态,即使在计算机关闭时也能运行. ...

  6. 【跃迁之路】【725天】程序员高效学习方法论探索系列(实验阶段482-2019.2.15)...

    实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. 我将开源我的学习方 ...

  7. 【跃迁之路】【554天】程序员高效学习方法论探索系列(实验阶段311-2018.08.13)...

    @(跃迁之路)专栏 [跃迁之路]奖励金计划正式开始 从2018.7.1起,[跃迁之路]奖励金计划正式起航,从今以后,, 每月1日,我会将自己个人上月收入的1%计入[跃迁之路]奖励金池,积累到足够金额后 ...

  8. 【跃迁之路】【531天】程序员高效学习方法论探索系列(实验阶段288-2018.07.21)...

    @(跃迁之路)专栏 [跃迁之路]奖励金计划正式开始 从2018.7.1起,[跃迁之路]奖励金计划正式起航,从今以后,每月1日,我会将自己个人上月收入的1%计入[跃迁之路]奖励金池,积累到足够金额后,将 ...

  9. .exp文件_exp及expdp的主要区别及常用的导入导出操作

    exp及expdp的主要区别 EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用 ...

最新文章

  1. JdbcTemplate详解 - 2
  2. 大小端模式 判断方法
  3. o型圈沟槽设计_深圳综合O型密封圈ID544.4MM*8.6MM报价-星湖蓝海科技
  4. android 将IE设为默认打开的浏览器
  5. Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
  6. 现代软件工程系列 结对编程 (II) 电梯调度程序
  7. memcache服务应用实践
  8. AOP与自定义注解与反射
  9. matlab 图例 显示几个,matlab图例拆分成两个多个分别显示
  10. VSCode使用Vim插件心得
  11. linux关闭监听端口命令,如何在Linux系统中监听和关闭端口
  12. vue中实现图片预览功能
  13. Android 监听软键盘弹出/隐藏,控制软键盘弹出/隐藏
  14. 【斗地主代码分析】(2)-斗地主逻辑-客户端与服务端
  15. 域名收敛和域名发散(分散)
  16. 行尸走肉第一季/全集The Walking Dead迅雷下载
  17. Spring Festival
  18. Python爬取多网页表格数据(非table)
  19. cocos2dx 精灵的移动(2)
  20. 5分钟教你掌握异常检测方法

热门文章

  1. 回答面试官:我“腿特长”!阿里云小哥哥小姐姐咋看( 0 x 0 )?
  2. 游戏中常用的寻路算法的分享(3):A*算法的实现
  3. ssh登录慢,等待时间长的问题
  4. 数据库altert日志中的GTX提示
  5. Linux复习资料——CentOS7下安装MySQL5.7.22(完整版本)
  6. gc()两分钟了解JDK8默认垃圾收集器(附英文)
  7. Ajax的get与post的区别,什么时候使用post?
  8. SQL基础【一、SQL简介】
  9. MySQL复制常用拓扑结构详解
  10. Eclipse新建web项目出现The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path