LeetCode简单题之二进制间距

news/2024/11/24 9:27:03/

题目

给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。
如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,“1001” 中的两个 1 的距离为 3 。
示例 1:
输入:n = 22
输出:2
解释:22 的二进制是 “10110” 。
在 22 的二进制表示中,有三个 1,组成两对相邻的 1 。
第一对相邻的 1 中,两个 1 之间的距离为 2 。
第二对相邻的 1 中,两个 1 之间的距离为 1 。
答案取两个距离之中最大的,也就是 2 。
示例 2:
输入:n = 8
输出:0
解释:8 的二进制是 “1000” 。
在 8 的二进制表示中没有相邻的两个 1,所以返回 0 。
示例 3:
输入:n = 5
输出:2
解释:5 的二进制是 “101” 。
提示:
1 <= n <= 10^9
来源:力扣(LeetCode)

解题思路

  直观的思路,找出所有1的下标然后,遍历寻找出最大距离即可。

class Solution:def binaryGap(self, n: int) -> int:index,num,MAX=[],bin(n),0for i in range(2,len(num)):if num[i]=='1':index.append(i)for i in range(1,len(index)):if index[i]-index[i-1]>MAX:MAX=index[i]-index[i-1]return MAX

在这里插入图片描述


http://www.ppmy.cn/news/605393.html

相关文章

SVD(奇异值分解)小结

特征值分解和奇异值分解的区别 所有的矩阵都可以进行奇异值分解&#xff0c;而只有方阵才可以进行特征值分解。当所给的矩阵是对称的方阵&#xff0c;A(T)A&#xff0c;二者的结果是相同的。也就是说对称矩阵的特征值分解是所有奇异值分解的一个特例。但是二者还是存在一些小的…

LeetCode中等题之随机数索引

题目 给定一个可能含有重复元素的整数数组&#xff0c;要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。 注意&#xff1a; 数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。 示例: int[] nums new int[] {1,2,3,3,3}; Solution sol…

什么是梯度下降法?

20220114 yθx θ取一个初始值 x,y是样本对 θ θ -梯度 θ不断改变知道左右两边相差小于误差 梯度下降从来都是拟合负梯度&#xff0c;GBDT平方损失只是恰好等于残差 https://mp.weixin.qq.com/s/F4YHEpfa280cpR4tgL0Maw AI面试题之GBDT梯度提升树 张戎​数学 话题的优秀回…

LeetCode中等题之自定义字符串排序

题目 给定两个字符串 order 和 s 。order 的所有单词都是 唯一 的&#xff0c;并且以前按照一些自定义的顺序排序。 对 s 的字符进行置换&#xff0c;使其与排序的 order 相匹配。更具体地说&#xff0c;如果在 order 中的字符 x 出现字符 y 之前&#xff0c;那么在排列后的字…

解释为什么用梯度下降而不是直接求导数为0的解

问题&#xff1a; 在计算线性回归最大似然估计的解的时候&#xff0c;最后的推导结果是 为什么不直接求出θ&#xff1f;而是一步步迭代求出θ&#xff1f; 原因 因此&#xff0c;梯度下降可以节省大量的计算时间。此外&#xff0c;它的完成方式允许一个简单的并行化&#xf…

方向导数 梯度

终于理解了方向导数与梯度 </h1><div class"clear"></div><div class"postBody">本文作者Key,博客园主页&#xff1a;https://home.cnblogs.com/u/key1994/ 本内容为个人原创作品&#xff0c;转载请注明出处或联系&#xff1a;zhe…

LeetCode简单题之最小栈

题目 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。…

【探索 Kubernetes|作业管理篇 系列 14】StatefulSet 存储状态

前言 大家好&#xff0c;我是秋意零。 在上一篇中&#xff0c;我们讲解了 StatefulSet 的拓扑状态&#xff1b;我们发现&#xff0c;它的拓扑状态&#xff0c;就是顺序启动/删除、Pod 名称编号命名、将 Pod 名称设为 Hostname 名称、通过 Service 无头服务的 DNS 记录访问。 …