分类 数据结构算法 中的文章

leetcode周赛:抛掷硬币

5090. 抛掷硬币 有一些不规则的硬币。在这些硬币中,prob[i] 表示第 i 枚硬币正面朝上的概率。 请对每一枚硬币抛掷 一次,然后返回正面朝上的硬币数等于 target 的概率。 示例 1: 输入:prob = [0.4], target = 1 输出:0.40000 示例 2:……

阅读全文

剑指offer:扑克牌中的顺子

题目描述 从扑克牌中随机抽若干张,判断是否组成一个顺子 (straight),即判断这些牌的数字是否是连续的。特别地,A为1,J为11,Q为12,K为13,大小王以0表示,大小王可以看作赖子(可以变成1 ~ 13中的任意数字)。 特别地,如果输入为空,返回False # -*- coding: utf-8 -*- # @Time : 2019-10-18 23:49 # @Author : Jayce Wong # @ProjectName : job # @FileName : isStraight.……

阅读全文

剑指offer:不用加减乘除做加法

题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 # -*- coding: utf-8 -*- # @Time : 2019-10-17 20:50 # @Author : Jayce Wong # @ProjectName : job # @FileName : addWithoutElementaryArithmetic.……

阅读全文

Python中的数字系统

一、Python位运算操作符 操作符 意义 ~ 按位取反 | 按位或 & 按位与 ^ 按位异或 << 左移 >> 右移 二、计算机中的原码、反码、补码 原码 原码是二进制数字的一种简单表示。例如8位有符号整数中,最高位为符号位,因此可以表示-127 ~ -0, +0 ~ 127共256个数字。……

阅读全文

剑指offer:不使用乘除、判断、循环进行求和

题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 解题思路 解法1:递归 + 逻辑运算 关键在于利用逻辑与的短路规则来设置递归的出口。 这里给出我写的Python实现以及参考的C++实现 # -*- coding: utf-8 -*- # @Time : 2019-10-17 10:56 # @Author : Jayce Wong # @ProjectName : job # @FileName : sumSolution.……

阅读全文

美团2020校招笔试:字符串排序

题目描述 给定字符串,对其进行逆序排序。 字符逆序是指从z到a排序,比如对两个字符串排序时,先比较第一个字符,按照字符逆序将z排在a的前面,当第一个字符相等时按照第二个字符进行排序,以此类推。 特殊情况: 空字符串需要排在最前面; 若一个短字符串是另一个长字符串的前缀则短字符串排在前面 请自行实现代码进行排序,不可直接调用sort等排序方法。 样例 输入 waimai,dache,lvyou,liren,meishi,jiehun,lvyoujingdian,jiaopei,menpiao,jiudian 输出 waimai,menpiao,meishi,lvyou,lvyoujingdian,liren,jiudian,jiehun,jiaopei,dache # -*- coding: utf-8 -*- # @Time : 2019-10-16 16:15 # @Author : Jayce Wong # @ProjectName : job # @FileName : meituan.……

阅读全文

剑指offer:和为S的连续正数序列

题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 # -*- coding: utf-8 -*- # @Time : 2019-10-16 14:32 # @Author : Jayce Wong # @ProjectName : job # @FileName : FindContinuousSequence.……

阅读全文

剑指offer:和为s的两个数字

题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 # -*- coding: utf-8 -*- # @Time : 2019-10-15 22:26 # @Author : Jayce Wong # @ProjectName : job # @FileName : FindNumbersWithSum.……

阅读全文

比较两个连分数的大小

题目描述 连分数可以表示为(a0; a1, a2, ... , an), 输入 输入n,之后是n+1个数字,分别表示a~0~, a~1~, …, a~n~ 输入m,之后是m+1个数字,分别表示b~0~, b~1~, …, b~m~ 要求比较以上两个连分数(分别记为x和y)的大小。 输出 若`x > y,输出 >,若 x < y,输出 <,否则输出 =……

阅读全文

约瑟夫环

题目描述 约瑟夫斯(Josephus)问题是一个出现在计算机科学和数学中的问题。 在计算机编程的算法中,类似问题又称为约瑟夫环。 约瑟夫斯问题:有n个囚犯站成一个圆圈,准备处决。 首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人。 接着,再越过k-1个人,并杀掉第k个人。 这个过程沿着圆圈一直进行,直到最终只剩下一个人留下,这个人就可以继续活着。 给定了n和k,一开始要站在什么地方才能避免被处决? # -*- coding: utf-8 -*- # @Time : 2019-09-18 21:57 # @Author : Jayce Wong # @ProjectName : job # @FileName : josephus.……

阅读全文