- 博客(15)
- 收藏
- 关注
转载 Linux退出vi编辑模式
编辑完按Esc退出编辑模式此时输入::wq保存后退出:wq!强制保存后退出:w保存但不退出:q不保存并退出:q!不保存并强制退出添加链接描述
2020-09-05 11:12:56
231
原创 剑指 Offer 11. 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0class Solution: def minArray(self, numbers: [int]) -> int: i, j = 0, len(numbe
2020-07-09 20:04:15
98
原创 剑指 Offer 10- II. 青蛙跳台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21提示:0 <= n <= 100int numWays(int n){ int f0 = 1; int f1 = 1; int fn; if(n == 0) fn
2020-07-09 11:31:59
98
原创 剑指 Offer 10- I. 斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出:5提示:0 <=
2020-07-09 10:13:06
123
原创 剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTail”,“ap
2020-07-08 13:19:53
87
原创 剑指 Offer 07. 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ 9 20/ 15 7限制:0 <= 节点个数 <= 5000/** * Definition for a binary tree node. * struct TreeNode { * int v
2020-07-07 15:24:01
116
原创 剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: de
2020-07-07 09:30:53
67
原创 剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000class Solution: def replaceSpace(self, s: str) -> str: return s.replace(' ','%20')解题关键:字符串常用函数 replace() 的使用...
2020-07-06 17:14:16
87
原创 Python的 and 操作符 和C语言的 && 操作符 有何不同?
C语言中有&& 及 || 这两个运算符而在python中是没有 && 及 || 这两个运算符的,只有and 和 orPython and 和 or 可以返回值,而 C 中&& 和 || 只会返回0和1,即False和true;举例:C语言中#include<stdio.h>int main(){ printf("%d, %d, %d, %d, %d\n", 'ok' && 1, 'ok' || 1, 0 &&
2020-06-22 22:17:05
1139
原创 leetcode 20. 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true思路:用栈实现当左括号出现的时
2020-06-20 22:32:11
68
原创 leetcode 3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。思路:滑动窗口,
2020-06-20 21:38:01
79
原创 leetcode 2. 两数相加
给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:这道题一开始我想的是先算出342+465的值然后逆序存入链表中,结果对于
2020-06-20 13:22:37
163
原创 leetcode 125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false一对大小写字母的ASCII码值相差32,但是0和P的ASCII码正好也差32所以要让字母大小写统一统一转成大写:ch & 0b11011111 简写:ch & 0xDF统一转成小写:c
2020-06-19 16:16:03
91
原创 求数组元素的平均值,并找出距离平均值最小的三个数组元素排序输出
给定一个整数数组 nums ,请你在该数组中找出距离数组元素的平均值最小的三个数组元素并排序输出示例:给定 nums = [33,44,61,2,36,42,56,81,11,17]返回 [36,42,33]int *a(int *nums, int size, int returnsize){ int i; float sum = 0; float avg; for(i=0; i < size; ++i) { sum = sum + nums[i]; } avg = 1.
2020-06-16 10:00:23
1111
原创 leetcode 1.两数之和 C实现
1.两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]/** * Note: The returned array must be malloced, assume cal
2020-06-13 13:15:03
137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人