Sulimin
首页
归档
分类
标签
关于
每日目标
剑指Offer15-位运算-二进制中1的个数
q请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1。因此,如果输入9,则该函数输出2。 示例1: 提示: 输入必须是长度为32的二进制串。 class Solution: def hummingWeight(self, n): 方法一:逐位判断 根据与运算定义,设二进制数字$n$,则有: 若n&1=0,
2020-11-17
剑指Offer58-双指针-I翻转单词顺序
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串”I am a student.”,则输出”student. a am I”。 示例1: 输入:"the sky is blue" 输出:"blue is sky the" 注意:本题与主站151题相同 class Solution: def reverseWords(self,
2020-11-17
剑指Offer57-双指针-和为s的两个数字
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 限制: 1 <= nums.length <= 10^5 1 <= nums[i] <= 10^6 复杂度分析: 时间复杂度$O(N)$:$N$为数组$nums$的长度;双指针共同线性遍历整个数组。 空间复杂度$O(1)$:变量$i,j$使用常
2020-11-17
剑指Offer25-双指针-合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 限制: 0 <= 链表长度 <= 1000 注意:本题与主站21题相同。 # Definition for singly-linked list. # class Li
2020-11-17
剑指Offer22-双指针-链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表:1->2->3->4->5,和k=2. 返回链表 4->5. # Definition for singly-l
2020-11-17
剑指Offer21-双指针-调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4]也是正确答案 提示: 1 <= nums.length <= 50000 1 <= nums[i] <= 10000 class Solution: def
2020-11-17
剑指Offer18-双指针-删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动。 示例1: 输入:head = [4,5,1,9], val = 5 输出:[4,1,9] 解释:给定链表中值为5的第二个节点,那么在调用了函数之后,该链表应变为4->10->9. 示例2: 输入:[4,5,1,9],val=1 输出:[4,5,9] 解释:给定链
2020-11-17
剑指Offer61-排序-扑克牌中的顺子
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张拍是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为0,可以看成任意数字。A不能视为14。 限制: 数组长度为5 数组的数取值为[0,13]。 class Solution: def isStraight(self, nums): 解题思路: 根据题意,此5张牌是顺子的充分条件如下: 除大小王外,所有牌无重复
2020-11-17
剑指Offer45-排序-将数组排成最小的数
s输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例1: 输入:[10,2] 输出:"102" 示例2: 输入:[3,30,34,5,9] 输出:"3033459" 提示: 0 < nums.length <= 100 说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数 拼接起来的数字可能会有前导0,最后结果不需要去掉
2020-11-17
剑指Offer41-排序-数据流中的中位数
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如: [2,3,4]的中位数是3[2,3]的中位数是(2+3) / 2 = 2.5 设计一个支持以下两种操作的数据结构: void addNum(int num) - 从数据流中添加一个整数到数据结构中。 d
2020-11-16
1
2
3
4
…
11
搜索
×
关键词