557. 反转字符串中的单词 III

class Solution:def reverseWords(self, s: str) -> str:arr=s.split(' ')res=[]for i in arr:res.append(i[::-1])return ' '.join(res)

345. 反转字符串中的元音字母

class Solution:def reverseVowels(self, s: str) -> str:lis=['a','e','i','o','u','A','E','I','O','U']s=list(s)i,j=0,len(s)-1while i<j:if s[i] not in lis:i+=1if s[j] not in lis:j-=1if s[i] in lis and s[j] in lis:s[i],s[j]=s[j],s[i]i+=1j-=1return ''.join(s)

153. 寻找旋转排序数组中的最小值

class Solution:def findMin(self, nums: List[int]) -> int:if nums[0]<nums[-1]:return nums[0]left,right=0,len(nums)-1while left<right:mid=left+(right-left)//2#小于右端点,mid可能为最小值if nums[mid]<nums[right]:right=midelse:#大于右端点,mid一定不是最小值left=mid+1return nums[left]

154. 寻找旋转排序数组中的最小值 II

为什么要用nums[mid]和nums[r]比较,而不是和nums[l]比较?
因为是寻找最小值,看如下例子:
[1,2,3,4,5]
[2,3,4,5,1]
虽然nums[mid]都大于nums[l],但是最小值可以在左侧或者右侧

将中轴元素与右边界元素作比较
1)中轴元素小于右边界元素,中轴元素跟右边界元素在 同一半边 。这时候最小元素在中轴元素 左边 (也有可能是中轴元素),将右边界指针移动到中轴元素位置(high = pivot)。
2)中轴元素大于右边界元素,中轴元素和左边界元素在一边,最小元素在中轴元素右边,下届指针移动到中轴元素位置右边(low = pivot + 1)
3)中轴元素等于右边界元素,能确定最小元素在中轴元素的左边还是右边。
为了缩小查找范围,安全的方法是将右边界指针减一(high = high - 1)。
上述策略可以有效地避免死循环,同时可以保证永远不会跳过最小元素

class Solution:def findMin(self, nums: List[int]) -> int:left,right=0,len(nums)-1while left<right:mid=left+(right-left)//2if nums[mid]<nums[right]:right=midelif nums[mid]>nums[right]:left=mid+1else:right=right-1return nums[left]

面试题46. 把数字翻译成字符串

class Solution:def translateNum(self, num: int) -> int:s=str(num)n=len(s)dp=[0]*(n+1)dp[0]=1dp[1]=1for i in range(2,n+1):if s[i-2:i]<='25' and s[i-2:i]>='10':dp[i]=dp[i-1]+dp[i-2]else:dp[i]=dp[i-1]return dp[-1]

面试题61. 扑克牌中的顺子

class Solution:def isStraight(self, nums: List[int]) -> bool:ma,mi=0,14match=set()for i in nums:if i==0:continuema=max(ma,i)mi=min(mi,i)if i in match:return Falsematch.add(i)return ma-mi<5

面试题60. n个骰子的点数

n个骰子可以得到n-6*n的点数
本轮点数之和为k出现次数等于上一轮点数的和为k-1,k-2,k-3,k-4,k-5,k-6出现的次数之和。
初始化,n=1时,出现点数有1,2,3,4,5,6,次数都为1

class Solution:def twoSum(self, n: int) -> List[float]:#n个骰子的点数和为 n-6*n#dp[i][j]:I个骰子的点数和为J的次数dp=[[0 for i in range(6*n+1)] for j in range(n+1)]for i in range(1,7):dp[1][i]=1#骰子数for i in range(2,n+1):#点数和for j in range(i,6*i+1):for k in range(1,7):if j-k>=0:dp[i][j]+=dp[i-1][j-k]res=[]for i in range(n,6*n+1):res.append(dp[n][i]*1.0/6**n)return res

628. 三个数的最大乘积

最大值:正数的三个最大值的乘积,存在负数时 两个负数最小值乘积乘以正数最大值,全是负数也是最大的三个负数乘积最大

class Solution:def maximumProduct(self, nums: List[int]) -> int:res=1if len(nums)<=3:for i in nums:res*=ireturn res#最大,次大,三大a,b,c=float('-inf'),float('-inf'),float('-inf')#最小,次小m,n=float('inf'),float('inf')for i in nums:if i<=m:m,n=i,melif i<=n:n=iif i>=a:a,b,c=i,a,belif i>=b:b,c=i,belif i>=c:c=ireturn max(a*b*c,m*n*a)

面试题 17.04. 消失的数字

class Solution:def missingNumber(self, nums: List[int]) -> int:res=0for i in range(len(nums)):res^=ires^=nums[i]return res^len(nums)

面试题17. 打印从1到最大的n位数

class Solution:def printNumbers(self, n: int) -> List[int]:res=[]for i in range(1,10**n):res.append(i)return res

考察大数

列表从1开始,并且删除高位多余的0

class Solution:def printNumbers(self, n: int) -> [int]:def dfs(x):if x == n:s = ''.join(num[self.start:])if s != '0': res.append(int(s))if n - self.start == self.nine: self.start -= 1returnfor i in range(10):if i == 9: self.nine += 1num[x] = str(i)# 固定第 x 位为 idfs(x + 1)# 开启固定第 x + 1 位self.nine -= 1num, res = ['0'] * n, []# 起始数字定义为 n 个 0 组成的字符列表self.nine = 0 #self.start = n - 1dfs(0)# 开启全排列递归return res

6.10力扣 10号出去逛街了,11号补上! 打印n位数相关推荐

  1. 【每日力扣10】有效的数独

    一.题目 请你判断一个 9 x 9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9  ...

  2. 力扣-10.26-127

    方法一:(广度优先搜索算法) class Solution {public int ladderLength(String beginWord, String endWord, List<Str ...

  3. 【力扣周赛】第340场周赛

    [力扣周赛]第340场周赛 6361:对角线上的质数 题目描述 解题思路 6360:等值距离和 题目描述 解题思路 6361:对角线上的质数 题目描述 描述:给你一个下标从 0 开始的二维整数数组 n ...

  4. 力扣第303场周赛补题

    力扣 第三题:设计食物评分系统 示例 输入 ["FoodRatings", "highestRated", "highestRated", ...

  5. 以赛促练-力扣第303场周赛反思

    从这周开始继续打周赛,尝试以赛促练,以后也想专门记录一下每周周赛一些我不会的题目,以及别人好的思路. 这次又只AC了前两题,基本上就是模拟,没有什么好说的.第三题本来一眼看以为是区间修改,线段树,结果 ...

  6. [指南]上海逛街大全

    淮海东路有一百货大楼群,上海广场.香港广场等,相对平淡,比较热闹的是太平洋百货,俗称淮太.太平洋是不用玫瑰多罗嗦的店吧,这家店在别的地方开一家倒一家,在中国开一家火一家.很多城市都有. 有时代广场连卡 ...

  7. 京东计划投资苏州高铁新城用地,11号公告内的3宗地块将正式出让

    10月19日,苏地网挂[2020]11号公告内的3宗地块将正式出让,总面积335395.7㎡(含地下出让面积),合计约503.39亩,总起报价480993万元,最高起拍楼面价15599.64元/㎡. ...

  8. 惠逛街:用一件白衬衫,撑起你该有的美貌!

    演员吴秀波曾说 那时候爱上一个人不是因为你有车有房 而是那天下午阳光很好 你穿了一件白衬衫 青春阳光的气息,和<微微一笑很倾城>里的杨洋郑爽一样,灵动亮眼. 而他们清纯的白衬衣造型更是成功 ...

  9. 上海公布新一轮轨交规划 迪士尼线将能与11号线换乘

    上海公布新一轮轨交规划 迪士尼线将能与11号线换乘[@more@] 上海公布新一轮轨交规划 迪士尼线将能与11号线换乘 http://news.online.sh.cn 2010-10-05 11:5 ...

最新文章

  1. com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 1024)
  2. 大学期间可以获得哪些荣誉_大学期间没有什么荣誉经历,该怎么写简历呢?找工作会很难吗?...
  3. (55)_KPCR, _NT_TIB, _KPRCB
  4. ConcurrentHashMap原理,jdk7和jdk8的区别
  5. 学python lesson2
  6. Python使用matplotlib可视化模拟龟兔赛跑折线图
  7. 比较JavaScript中的集合及其检索效率
  8. linux java 文件上传到服务器_java代码实现文件上传到linux服务器及问题汇总及解决...
  9. python可视化编程软件下载_mPython-mPython(图形化编程软件)下载 v0.5.0官方版-下载啦...
  10. Android应用程序开发以及背后的设计思想深度剖析(3)
  11. 你这还不精通NIO(Netty_1)
  12. 驱动开发入门 - 之二:Win7-x64 + VMWare (Win7-x64) + WinDbg 双机调试环境搭建
  13. Kibana:Drilldown 中的 URL 模板
  14. 开弓没有回头箭,遭遇跳槽四大后悔事件,怎么办?
  15. SQLDumpSplitter sql文件分割工具
  16. xp系统如何启用服务器服务,xp系统怎么样启用远程服务器
  17. 电脑端bilibili视频缓存合并视频的解惑
  18. git+vimdiff 一次关闭所有文件
  19. c语言编程中的或逻辑的符号 符号如何输入,C语言中逻辑运算符(,||,!)和位运算符号(,|,^)...
  20. 三台路由器两台计算机华为,两台华为路由器桥接设置方法

热门文章

  1. 不可不知的安卓屏幕知识
  2. 分销与供应链电子元器件采购需要掌握哪些基础知识?
  3. 《思维力:高效的系统思维》读书笔记02 - 深入理解系统化思维
  4. 停车场智能化管理系统
  5. 仓库温度湿度控制措施_仓库温度湿度控制管理制度
  6. 为什么不敢和别人竞争_三千亿碧桂园的残酷竞争:别人能,你为什么不能?
  7. lumen框架的理解
  8. 「Python条件结构」嵌套if:实现奖学金评定
  9. 由于找不到mscoree.dll无法继续执行代码
  10. 豆瓣爬虫(从剧名获取ID)