秋招刷题
力扣
kaikai_1019
写博客,总结自己每天的学习!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
火柴棒拼最大数和最小数
题目:n根火柴棒,能组成最大的数是多少?最小的正整数是多少?#include <stdio.h>int main(){ int n,m,bg,i; while(scanf("%d",&n)==1) { m=n; bg = 1; while(m!=0) { if(m<=7) { switch(m)原创 2021-10-10 15:15:31 · 1309 阅读 · 0 评论 -
352. 将数据流变为多个不相交区间(待补充)
352. 将数据流变为多个不相交区间进阶: 如果存在大量合并,并且与数据流的大小相比,不相交区间的数量很小,该怎么办?链接:https://leetcode-cn.com/problems/data-stream-as-disjoint-intervalsclass SummaryRanges {public: int nums[10001]={0}; SummaryRanges() { void addNum(int val); vector原创 2021-10-09 22:16:59 · 232 阅读 · 0 评论 -
53. 最大子序和
53. 最大子序和思路:动态规划class Solution {public: int maxSubArray(vector<int>& nums) { int n=nums.size(); vector<int>dp(n,INT_MIN); int max_sum=INT_MIN; dp[0]=nums[0]; for(int i=1;i<n;i++) {原创 2021-10-08 22:51:13 · 127 阅读 · 0 评论 -
187. 重复的DNA序列
187. 重复的DNA序列class Solution {public: vector<string> findRepeatedDnaSequences(string s) { vector<string>str; map<string,int>map; int r=0; int n=s.size(); while(r<=n-10) {原创 2021-10-08 21:10:23 · 119 阅读 · 0 评论 -
434.字符串中的单词数
434.字符串中的单词数思路:计算字符串中单词的数量,就等同于计数单词的第一个下标的个数。因此,我们只需要遍历整个字符>串,统计每个单词的第一个下标的数目即可。满足单词的第一个下标有以下两个条件:该下标对应的字符不为空格;该下标为初始下标或者该下标的前下标对应的字符为空格;class Solution {public: int countSegments(string s) { int cnt=0; for(int i=0;i<s.原创 2021-10-07 12:32:42 · 331 阅读 · 0 评论 -
414. 第三大的数
414. 第三大的数首先,分享一下自己的笨方法:先排序,通过关联容器set去重,获取不重复元素的个数,然后进行判断class Solution {public: int thirdMax(vector<int>& nums) { set<int>st; sort(nums.begin(),nums.end()); int n=nums.size(); for(auto& it:num原创 2021-10-06 15:39:16 · 122 阅读 · 0 评论 -
160. 相交链表
160. 相交链表思想:先计算出a和b的总长度,计算step=abs(a-b),然后将最长的链表先执行step次next,最后判断a->next和b->next/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class原创 2021-10-02 15:37:08 · 223 阅读 · 0 评论 -
405. 数字转换为十六进制数
405. 数字转换为十六进制数class Solution {public:// 【笔记】核心思想,使用位运算,每4位,对应1位16进制数字。 // 使用0xf(00...01111b)获取num的低4位。 // >>算数位移,其中正数右移左边补0,负数右移左边补1。 // 位移运算并不能保证num==0,需要使用32位int保证(对应16进制小于等于8位)。 // 使用string直接进行字符串拼接.... st原创 2021-10-02 12:29:22 · 165 阅读 · 0 评论 -
1436. 旅行终点站
1436. 旅行终点站思路:将起始点用set保存起来,然后通过终点来查找,若该终点不在起点集合中,则返回class Solution {public: string destCity(vector<vector<string>>& paths) { set<string>start; string res; for(auto& c:paths) { st原创 2021-10-01 23:17:34 · 119 阅读 · 0 评论 -
437. 路径总和 III
437. 路径总和 III/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(原创 2021-09-30 17:22:56 · 117 阅读 · 0 评论 -
223. 矩形面积
223. 矩形面积思路(来源https://mp.weixin.qq.com/s/gypmkZFX87O1KzMt7XW0DA):class Solution {public: int area(int x,int y) { return x*y; } int area(int x1,int y1,int x2,int y2) { return area(x2-x1,y2-y1); } int compute原创 2021-09-30 12:51:26 · 95 阅读 · 0 评论 -
517. 超级洗衣机
517. 超级洗衣机数学问题思路:将每个洗衣机中的衣服数量相等可以转化为:差值数组中每一项都变为0,差值数组为 diff[i] = machines[i] - target在把差值数组每一项变为0的操作中,只需要求出其中所需移动衣服最多的洗衣机,就是最少的移动次数。当diff[i] < 0 时,可以从左右两边的洗衣机获取衣服,取左右中的最大值;当diff[i] > 0 时,需要把洗衣机的衣服向左右转移,此时移动次数等于diff[i]我们从左向右依次把差值数组中的每一项变为0:考虑原创 2021-09-29 23:23:35 · 147 阅读 · 0 评论 -
283. 移动零(双指针)
283. 移动零class Solution {public: void moveZeroes(vector<int>& nums) { int l=0; int r=0; int len=nums.size(); while(r<len) { if(nums[r]!=0) { int tmp=nums[r];原创 2021-09-28 12:52:44 · 89 阅读 · 0 评论 -
2. 两数相加
2. 两数相加/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), n原创 2021-09-28 00:00:19 · 90 阅读 · 0 评论 -
206. 反转链表
206. 反转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x),原创 2021-09-27 23:19:41 · 105 阅读 · 0 评论 -
1338. 数组大小减半
1338. 数组大小减半class Solution {public: int minSetSize(vector<int>& arr) { vector<int> dp; sort(arr.begin(),arr.end()); int n=arr.size()/2; int cnt=1; for(int i=1;i<arr.size();i++) { /原创 2021-09-27 20:13:56 · 91 阅读 · 0 评论 -
位运算--两数之和
371. 两整数之和自己写的代码,存在负数没办法处理class Solution {public: int sum(int a,int b) { while(a&b) { int c=(a&b)<<1; int d=(a^b); a=c; b=d; } return a|b; }原创 2021-09-26 12:33:12 · 184 阅读 · 0 评论 -
滑动窗口模板
*滑动窗口模板*(来源于 labuladong )/* 滑动窗口算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (char c : t) need[c]++; int left = 0, right = 0; int valid = 0; while (right < s.size()) { /原创 2021-09-25 22:21:35 · 130 阅读 · 0 评论 -
583. 两个字符串的删除操作
583. 两个字符串的删除操作1143. 最长公共子序列状态转移方程class Solution {public: int minDistance(string word1, string word2) { int len1=word1.size(); int len2=word2.size(); vector<vector<int>>dp(len1+1,vector<int>(len2+1,0));原创 2021-09-25 16:14:04 · 92 阅读 · 0 评论 -
88. 合并两个有序数组
88. 合并两个有序数组class Solution {public: //将第i个位置的数字向后移动一位 vector<int> move(int i,vector<int>& nums1) { // nums1数组后面是0,从后往前到第i个数,将num1[k-1]赋值给nums[k] int k=nums1.size()-1; while(k!=i) {原创 2021-09-24 17:16:42 · 88 阅读 · 0 评论 -
486. 预测赢家
486. 预测赢家class Solution {public: bool PredictTheWinner(vector<int>& nums) { int n=nums.size(); vector<vector<int>>dp(n,vector<int>(n,0)); for (int i = 0; i < n; i++) {原创 2021-09-23 23:48:19 · 100 阅读 · 0 评论 -
21. 合并两个有序链表
21. 合并两个有序链表/** 方法1: * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) :原创 2021-09-23 21:54:29 · 108 阅读 · 0 评论 -
326. 3的幂
326. 3的幂class Solution {public: bool isPowerOfThree(int n) { double value=1;//这里需要定义为双精度,int会溢出 if(n==1)return true;//判断特殊情况 while(n) {//通过不断的的乘以3,判断是否存在一个数与n相等,若相等则返回true,否则返回fasle value*=3; i原创 2021-09-23 09:47:40 · 90 阅读 · 0 评论 -
725. 分隔链表
725. 分隔链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x),原创 2021-09-22 15:03:56 · 97 阅读 · 0 评论 -
58. 最后一个单词的长度
****class Solution {public: int lengthOfLastWord(string s) { int len=0; //将字符串后的空格去除 while(s[s.size()-1]==' ') { int index=s.find_last_of(" ");//获取空格的索引 if(index==s.size()-1) s原创 2021-09-21 11:19:38 · 90 阅读 · 0 评论
分享