剑指 Offer 42. 连续子数组的最大和

难度简单102收藏分享切换为英文关注反馈

输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。

要求时间复杂度为O(n)。

示例1:

输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

提示:

  • 1 <= arr.length <= 10^5
  • -100 <= arr[i] <= 100
class Solution {
public:int maxSubArray(vector<int>& nums) {int n=nums.size();vector<int> dp(n+1);dp[0]=nums[0];int maxn=dp[0];for(int i=1;i<=n-1;i++){dp[i]=max(dp[i-1]+nums[i],nums[i]);maxn=max(dp[i],maxn);}return maxn;}
};

剑指 Offer 43. 1~n整数中1出现的次数

难度中等74收藏分享切换为英文关注反馈

输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。

例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。

示例 1:

输入:n = 12
输出:5

示例 2:

输入:n = 13
输出:6

https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/solution/mian-shi-ti-43-1n-zheng-shu-zhong-1-chu-xian-de-2/

跳过不会  哭

剑指 Offer 44. 数字序列中某一位的数字

难度中等53收藏分享切换为英文关注反馈

数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。

请写一个函数,求任意第n位对应的数字。

示例 1:

输入:n = 3
输出:3

示例 2:

输入:n = 11
输出:0
跳过 无语

剑指 Offer 45. 把数组排成最小的数

难度中等80收藏分享切换为英文关注反馈

输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。

示例 1:

输入: [10,2]
输出: "102"

示例 2:

输入: [3,30,34,5,9]
输出: "3033459"
class Solution {
public:string minNumber(vector<int>& nums) {
// 把数字转成字符串vector<string>strs;string ans;for(int i = 0; i < nums.size(); i ++){strs.push_back(to_string(nums[i]));}sort(strs.begin(), strs.end(), [](string& s1, string& s2){return s1 + s2 < s2 + s1;});for(int i = 0; i < strs.size(); i ++)ans += strs[i];return ans;}
};

引用传递不需要调用构造函数去构造函数的局部变量

剑指 Offer 46. 把数字翻译成字符串

难度中等116收藏分享切换为英文关注反馈

给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。

示例 1:

输入: 12258
输出: 5
解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"

class Solution {
public:int translateNum(int num) {string src = to_string(num);int p = 0, q = 0, r = 1;for (int i = 0; i < src.size(); ++i) {p = q; q = r; r = 0;r += q;if (i == 0) {continue;}auto pre = src.substr(i - 1, 2);if (pre <= "25" && pre >= "10") {r += p;}}return r;}
};

剑指 Offer 47. 礼物的最大价值

难度中等56收藏分享切换为英文关注反馈

在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?

示例 1:

输入:
[[1,3,1],[1,5,1],[4,2,1]
]
输出: 12
解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物
class Solution {
public:int maxValue(vector<vector<int>>& grid) {int n=grid.size();int m=grid[0].size();for(int i=1;i<n;i++){grid[i][0]+=grid[i-1][0];}for(int j=1;j<m;j++){grid[0][j]+=grid[0][j-1];}for(int i=1;i<n;i++){for(int j=1;j<m;j++){grid[i][j]=max(grid[i-1][j],grid[i][j-1])+grid[i][j];}}return grid[n-1][m-1];}
};

剑指 Offer 48. 最长不含重复字符的子字符串

难度中等70收藏分享切换为英文关注反馈

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

示例 1:

输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

提示:

  • s.length <= 40000
class Solution {
public:int lengthOfLongestSubstring(string s) {//滑动窗口unordered_map<char,int> window;int ans=0;int left=0,right=0;while(right<s.size()){char c=s[right];right++;window[c]++;//收缩while(window[c]>1){char b=s[left];left++;window[b]--;}ans=max(ans,right-left);}return ans;}
};

剑指 Offer 49. 丑数

难度中等56收藏分享切换为英文关注反馈

我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。

示例:

输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。


// 1, 2, 3, 4, 5, 6, 8, 9, 10, 12
class Solution {
public:int nthUglyNumber(int n) {vector<int> dp(n, 0);dp[0] = 1;int p2 = 0, p3 = 0, p5 = 0;for (int i = 1; i < n; i++) {dp[i] = min(min(dp[p2] * 2, dp[p3] * 3), dp[p5] * 5);if (dp[i] == dp[p2] * 2)p2++;if (dp[i] == dp[p3] * 3)p3++;if (dp[i] == dp[p5] * 5)p5++;}return dp[n - 1];}
};

剑指 Offer 50. 第一个只出现一次的字符

难度简单39收藏分享切换为英文关注反馈

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

示例:

s = "abaccdeff"
返回 "b"s = ""
返回 " "
class Solution {
public:char firstUniqChar(string s) {int a[26] = {0};if(s == "") return ' ';for(int i = 0; i < s.size(); i++){int b = s[i] - 'a';a[b] += 1;}for(int i = 0; i < s.size(); i++){int b = s[i] - 'a';if(a[b] == 1) return s[i];}return ' ';}
};

剑指 Offer 41-50相关推荐

  1. 【LeetCode】剑指 Offer 41. 数据流中的中位数

    [LeetCode]剑指 Offer 41. 数据流中的中位数 文章目录 [LeetCode]剑指 Offer 41. 数据流中的中位数 package offer;import java.util. ...

  2. 【LeetCode笔记】剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)

    文章目录 题目描述 知识点 1. 优先队列 2. Java 中 queue 的 offer.poll 等区别 思路 && 代码 二刷 打卡第十一天- 题目描述 虽然但是,这是一道很ni ...

  3. 《剑指 Offer I》刷题笔记 41 ~ 50 题

    <剑指 Offer I>刷题笔记 41_50 排序(中等) 41. 最小的k个数# _解法1:排序 API + 数组复制 API 42. 数据流中的中位数 _解法1:暴力 搜索和回溯算法( ...

  4. 剑指offer第二版答案详细版(带详细解题思路)

    1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...

  5. leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列

    剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...

  6. C#LeetCode刷题-剑指Offer

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-剑指Offer | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode剑指Offer ...

  7. 《剑指 Offer》题目汇总

    文章目录 1. 数组 2. 链表 3. 栈和队列 4. 哈希表 5. 字符串 6. 树 7. 堆 8. 回溯和深度优先搜索 9. 递归和循环 10. 双指针 11. 动态规划 12. 贪心算法 13. ...

  8. LeetCode力扣(剑指offer 41-68)

    目录 剑指 Offer 41. 数据流中的中位数 剑指 Offer 42. 连续子数组的最大和 剑指 Offer 43. 1-n 整数中 1 出现的次数 剑指 Offer 44. 数字序列中某一位的数 ...

  9. 剑指offer (From Leetcode) 汇总

    剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知 ...

  10. 算法题解(剑指Offer篇)

    文章目录 栈与队列(简单) *剑指 Offer 09. 用两个栈实现队列 - 12.27 剑指 Offer 30. 包含min函数的栈 - 12.27 链表(简单) *剑指 Offer 06. 从尾到 ...

最新文章

  1. idea log 不输出error_还在使用console.log()吗?Bunyan:一个简单易用的JS日志框架
  2. Windows7 Scrapy框架建立
  3. operate XML file (Open,Insert)
  4. 特征层次分析、视觉特征语义探索(微调+预训练)
  5. Sql Server2008——远程过程调用失败
  6. java第五章 多线程_java多线程编程核心技术——第五章总结
  7. 使用Python和MetaTrader在5分钟内开始构建您的交易策略
  8. 电大计算机网考选择题多少分,2016年度电大计算机网考选择题及标准答案.doc
  9. JS:1.什么是JavaScript?
  10. Android开源项目推荐之「图片加载到底哪家强」
  11. 阿里、京东、拼多多电商三巨头财报大比拼:拼多多用户数上拼了 京东营收超过阿里...
  12. postgresql磁盘空间清理
  13. 围成面积(信息学奥赛一本通 - T1359)
  14. HTML5Point 如何去版权图片?
  15. 活性污泥法生活污水处理设备的参数详解
  16. 小程序学习历程(二):注册小程序测试号
  17. 日常开发中,你需要掌握的git使用报错解决
  18. 【AI Data Science】第 1 章分析性思维与 人工智能驱动的企业
  19. 罗切斯特大学计算机博士,罗切斯特大学生物博士排名,千万得慎重点看清
  20. 【分布式】分布式环境下如何保证数据库和缓存的双写一致性?看完我明白了!!

热门文章

  1. 电网风险、风险评估、风光不确定性 考虑蒙特卡洛考虑风光不确定性的配电网运行风险
  2. 和风天气 (简易版)
  3. 化工厂人员定位保障安全管理
  4. win10杀毒防护已经关闭了还是删除文件解决方法
  5. js写给定k个字符串数组,从这k个数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(不要使用库方法)
  6. 一点还算不郁闷的郁闷的事
  7. 腾讯云数据库联手宇信科技发布联合方案,全面助力金融科技安全可控
  8. 从零开始构建一个高可靠的RabbitMQ镜像集群
  9. 用chrome按F12抓包 页面跳转POST一瞬间就闪没了
  10. Nautre综述:鸟枪法宏基因组-从取样到数据分析(1)2万字带你系统入门宏基因组实验和分析...