野三坡
野三坡
银山塔林
银山塔林
整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。Python3 两行代码解决,28ms。12345678class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ y = [1,-1][x<0] * int(str(abs(x))[::-1]) return y if y.bit_length() < 32 else 0
移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。如下解法,执行时间12ms。12345class Solution: def removeElement(self, nums, val): while (val in nums): nums.remove(val) return len(nums)
罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。给定一个罗马数字,将其 ...
回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。python两种解法:第一种执行用时64ms。12345def reverse(x): if str(x)[::-1] == str(x): return True else: return False
第二种执行用时108ms.123def reverse(x): return str(x)[::-1] == str(x)print(reverse(121))
实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。python执行用时20ms。12def strStr(haystack, needle): return 0 if needle == '' e ...
两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。参考了大神们的解法,通过哈希来求解,这里通过字典来模拟哈希查询的过程。个人理解这种办法其实就是字典记录了 num1 和 num2 的值和位置,而省了再查找 num2 索引的步骤。不需要 mun2 不需要在整个 dict 中去查找。可以在 num1 之前的 dict 中查找,因此就只需要一次循环可解决。123456def twoSum(nums, target): hashmap={} for i,num in enumerate(nums): if hashmap.get(target - num) is not None: return [i,hashmap.get(target - num)] hashmap[num] = i #这句不能放在if语句之前,解决list中有重复值 ...
聊天机器人
KerasKeras tf.keras 是用于构建和训练深度学习模型的 TensorFlow 高阶 API。利用此 API,可实现快速原型设计、先进的研究和生产,它具有以下三大优势:
方便用户使用 Keras 具有针对常见用例做出优化的简单而一致的界面。它可针对用户错误提供切实可行的清晰反馈。 模块化和可组合 将可配置的构造块组合在一起就可以构建 Keras 模型,并且几乎不受限制。 易于扩展 可以编写自定义构造块,表达新的研究创意;并且可以创建新层、指标、损失函数并开发先进的模型。
聊天机器人将数据传递到模型的内置训练循环时,应当使用 NumPy 数组(如果数据很小且适合装入内存)或 tf.data Dataset 对象。在接下来的段落中,我们将 MNIST 数据集用作 NumPy 数组,以演示如何使用优化器、损失和指标。
我们考虑以下模型(在这里,我们使用函数式 API 构建了此模型,但它也可以是序贯模型或子类化模型):
123456inputs = keras.Input(shape=(784,), name="digits")x = layers.Dens ...
最长公共前缀
leetcode原题,编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。利用python的max()和min(),在Python里字符串是可以比较的,按照ascII值排,举例abb, aba,abac,最大为abb,最小为aba。所以只需要比较最大最小的公共前缀就是整个数组的公共前缀12345678def longestCommonPrefix(self, strs): if not strs: return "" s1 = min(strs) s2 = max(strs) for i,x in enumerate(s1): if x != s2[i]: return s2[:i] return s1