![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
有事没事刷刷oj
文章平均质量分 93
吃吃今天努力学习了吗
研究方向计算机视觉+冷冻电镜三维重建,欢迎大家交流~ 北上杭有好的工作机会求推荐!
展开
-
【LeetCode热题100总结】239. 滑动窗口最大值
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值。原创 2024-06-02 17:27:15 · 737 阅读 · 1 评论 -
[leetcode] 338. 比特位计数(位运算+动态规划)
目录题目描述解题思路动态规划思路一:动态规划——最低设置位复杂度分析思路二:动态规划——移位代码实现Tips题目描述题目链接:添加链接描述给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O原创 2021-03-03 15:20:50 · 246 阅读 · 1 评论 -
[leetcode]304. 二维区域和检索 - 矩阵不可变(二维前缀和)
题目描述原创 2021-03-02 09:59:42 · 149 阅读 · 0 评论 -
[LeetCode 35] 搜索插入位置(Python+二分查找问题总结)
目录题目描述解题思路二分查找代码实现Tips题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1题目链接:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/search-insert-position解题思路二分原创 2020-07-17 09:58:51 · 655 阅读 · 2 评论 -
[leetcode 96] 不同的二叉搜索树 (python+动态规划/卡塔兰数)
目录题目描述解题思路方法一:动态规划方法二:数学法代码实现方法一:动态规划方法二:数学法Tips题目描述给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/unique-binary-search-trees解题思路方法一:动态规划给定一个有序序列1···n,为了构建出一棵二叉搜索树,可以遍历每个数字i,将该数字作为树根,将1···(i−1)(i - 1)(i−1原创 2020-07-15 22:21:44 · 304 阅读 · 0 评论 -
[leetcode 309] 最佳买卖股票时机含冷冻期(python+动态规划多个转移方程)
目录题目描述解题思路动态规划代码实现Tips题目描述给定一个整数数组,其中第 iii 个元素代表了第 iii 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]来源:力扣(Le原创 2020-07-10 10:30:52 · 212 阅读 · 0 评论 -
[leetcode 17.13.] 恢复空格(Python 动态规划+字典树Trie)
目录题目描述解题思路方法一:字典树+动态规划代码实现Tips题目描述哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!"已经变成了"iresetthecomputeritstilldidntboot"。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识原创 2020-07-09 20:34:06 · 281 阅读 · 0 评论 -
[leetcode 63] 不同路径 II(Python 动态规划+滚动数组优化)
题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入: [ [0,0,0], [0,1,0], [0,0,0] ]输出: 2解释:3x3 网格的正中间有一个障碍物原创 2020-07-06 09:58:44 · 460 阅读 · 0 评论 -
[leetcode 11] 盛最多水的容器(Python 双指针)
题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49来源原创 2020-06-29 16:02:50 · 248 阅读 · 0 评论 -
[leetcode 209]长度最小的子数组(Python+二分查找+双指针)
题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。来源:力扣(LeetCode)链接:https://leetcode-cn.c原创 2020-06-28 11:02:21 · 415 阅读 · 0 评论 -
[leetcode 41]缺失的第一个正数(Python+哈希表+元素互换)
题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-missing-positive结题思路来源于官方题解:哈希原创 2020-06-27 22:04:18 · 282 阅读 · 0 评论 -
[LeetCode 739] Daily Temperatures(每日温度)(栈)
目录题目描述解题思路代码实现题目地址:https://leetcode-cn.com/problems/daily-temperatures题目描述Given a list of daily temperatures T, return a list such that, for each day in the input, tells you how many days ...原创 2020-02-09 23:49:07 · 259 阅读 · 0 评论 -
[LeetCode]Merge Two Sorted Lists(合并两个有序链表)(java)
一、题目描述:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Example:Input: 1->2->4, 1->3->4O...原创 2019-03-22 16:05:17 · 234 阅读 · 0 评论 -
[Leetcode]Generate Parentheses(生成括号)
一、题目描述Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", ...原创 2019-03-25 15:12:24 · 732 阅读 · 0 评论 -
[leetcode]gas-station加油站(贪心)
问题描述:There are N gas stations along a circular route, where the amount of gas at station i is gas[i].You have a car with an unlimited gas tank and it costs cost[i]of gas to travel from station i t...原创 2019-03-08 09:55:14 · 370 阅读 · 0 评论 -
腾讯2017暑期实习生编程题
题目一:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。解题思路:先reverse求字符串的反串,...原创 2019-03-09 16:52:37 · 209 阅读 · 0 评论 -
[leetcode]reorder-list
题目描述:Given a singly linked list L: L 0→L 1→…→L n-1→L n,reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→…You must do this in-place without altering the nodes' values.For example,Given{1,2,3,4}, reo...原创 2019-02-12 12:06:10 · 360 阅读 · 0 评论 -
[leetcode]binary-tree-preorder-Traversal
题目描述:Given a binary tree, return the preorder traversal of its nodes' values.Note: Recursive solution is trivial, could you do it iteratively?实现思路:要实现非递归的二叉树前序遍历,可以借助栈来实现,前序遍历是根-左-右,先把根压栈然后弹出到...原创 2019-02-11 12:41:19 · 157 阅读 · 0 评论 -
[LeetCode]candy分糖果
题目描述There are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:Each child must have at least ...原创 2019-02-22 09:26:15 · 560 阅读 · 0 评论 -
[LeetCode]linked-list-cycle ii 环形链表
问题描述Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull.Follow up: Can you solve it without using extra space?解题思路首先,需要判断链表中有无环,借助快慢指针去寻找,fast每次走两步,sl...原创 2019-02-15 12:21:57 · 169 阅读 · 0 评论 -
清华机试oj——约数的个数
题目描述输入n个整数,依次输出每个数的约数的个数输入描述:输入的第一行为N,即数组的个数(N<=1000)接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)当N=0时输入结束。输出描述:可能有多组输入数据,对于每组输入数据,输出N行,其中每一行对应上面的一个数的约数的个数。示例1输入51 3 4 6 12输出12346解题思路利...原创 2018-05-26 14:19:31 · 743 阅读 · 0 评论 -
清华机试oj——代理服务器
题目描述 使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这 m 个服务器的 IP 地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它 IP地址相同的服务器(不然客户端信息很有可能就会被泄露)。在这样的条件下,找到一种使用代理服务器的方案,使得代理服务器切换的次...原创 2018-05-26 16:15:38 · 1316 阅读 · 0 评论 -
清华机试oj——手机按键
题目描述按照手机键盘输入字母的方式,计算所花费的时间如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。现在给出一串字符,需要计算出...原创 2018-05-26 17:12:36 · 614 阅读 · 2 评论 -
清华机试oj——质因数的个数
题目描述求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入描述:可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。输出描述:对于每组数据,输出N的质因数的个数。示例1输入120输出5解题思路这几道题做过很多遍了但还是经常见到它。这次在做的时候才发现是不需要判断因数是否为质数的!这样能省不...原创 2018-06-02 21:23:05 · 1137 阅读 · 1 评论 -
清华机试oj——整数拆分
题目描述一个整数总可以拆分为2的幂的和,例如:7=1+2+47=1+2+2+27=1+1+1+47=1+1+1+2+27=1+1+1+1+1+27=1+1+1+1+1+1+1总共有六种不同的拆分方式。再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。用f(n)表示n的不同拆分的种数,例如f(7)=6.要求编写程序,读入n(不超过1000000...原创 2018-05-29 20:35:23 · 736 阅读 · 0 评论 -
美团CodeM2018资格赛赛题官方版本详解(一)——下单
第一题:下单解题思路标程#include <stdio.h>#include <stdlib.h>#include <algorithm>using namespace std;void Assert(bool t){if(!t){printf("data error\n");exit(0);}}int n,m,i,j,k,ans;int a[1...原创 2018-06-12 21:31:36 · 506 阅读 · 0 评论 -
美团CodeM2018资格赛赛题官方版本详解(二)——可乐
▋解题思路▋标准程序#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime>#include <cmath>#include <iostream>#include <algorithm>using namespace原创 2018-06-12 21:36:30 · 464 阅读 · 0 评论 -
美团CodeM2018资格赛赛题官方版本详解(三)——世界杯
解题思路标准程序#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime>#include <cmath>#include <iostream>#include <algorithm>using namespace st原创 2018-06-12 21:41:50 · 331 阅读 · 0 评论 -
美团CodeM2018资格赛赛题官方版本详解(四)——分数
解题思路:、标准程序:#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define mp make_pair#def...原创 2018-06-12 21:48:10 · 238 阅读 · 0 评论 -
美团CodeM2018资格赛赛题官方版本详解(五)——你的城市
解题思路标准程序#include<cstdio>#include<cstdlib>#include<string>#include<algorithm>#define For(i,l,r) for(int i=l;i<=r;i++)#define Dor(i,r,l) for(int i=r;i>=l;i--)#define...原创 2018-06-12 21:56:46 · 263 阅读 · 0 评论 -
美团CodeM2018资格赛赛题官方版本详解(六)——匹配
解题思路标准程序#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <vector>#include <bitset>#include <原创 2018-06-12 22:01:42 · 294 阅读 · 0 评论 -
清华机试oj——成绩排序【水题】
用一维数组存储学号和成绩,然后,按成绩排序输出。输入描述:输入第一行包括一个整数N(1<=N<=100),代表学生的个数。接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。输出描述:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到大排序。示例1输入31 902 873 92输出2 871 903...原创 2018-05-30 08:54:29 · 438 阅读 · 0 评论 -
清华机试oj——球的半径和体积
输入球的中心点和球上某一点的坐标,计算球的半径和体积输入描述:球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1输出描述:输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数为避免精度问题,PI值请使用arccos(-1)。示例1输入0 0 0 1 1 1 输出1.732 21.766解题思路思路就是用数学公式求解,里面需要注意两点:1、PI的...原创 2018-05-30 09:09:34 · 672 阅读 · 0 评论 -
清华机试oj——二叉树遍历
题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串:ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述:输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每个字...原创 2018-05-30 09:55:59 · 892 阅读 · 0 评论 -
归并排序实现c++版
|基本思路归并排序利用了递归的思想(而是分而治之的思想),将数组一分为二,先将左半部分(坐标为0~mid)排好序,再将右半部分排好序(都是调用函数),最后将两部分合并起来。整体算法时间复杂度为O(nlogn),空间复杂度为O(n)。|归并排序的c++具体实现#include<bits/stdc++.h>using namespace std;//归并过程void ...原创 2018-07-28 16:36:42 · 11192 阅读 · 4 评论 -
浙大机试OJ——二叉搜索树
|题目描述:判断两序列是否为同一二叉搜索树序列|输入描述:开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。输出描述:...原创 2018-07-26 15:17:43 · 666 阅读 · 0 评论 -
[leetcode]binary-tree-postorder-Traversal
题目描述:Given a binary tree, return the postorder traversal of its nodes' values.Note: Recursive solution is trivial, could you do it iteratively?实现思路:要实现非递归的二叉树后序遍历,这里学习到了一个巧妙的解法,借助栈来实现,将前序遍历加以修...原创 2019-02-01 12:23:30 · 177 阅读 · 0 评论 -
清华机试oj——成绩排序
题目描述题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom ...原创 2018-05-26 13:55:46 · 1888 阅读 · 0 评论