当前位置: 首页 > news >正文

xp 做网站服务器杭州百度快照优化公司

xp 做网站服务器,杭州百度快照优化公司,南通网站建设方法,顺昌网站建设算法中最主要的是要考虑时间复杂度,在时间低的情况下,再去考虑空间复杂度 (1)LeetCode1:两数之和 方法一:两层循环,依次遍历,暴力获取和为target的索引值,时间复杂度为…

  算法中最主要的是要考虑时间复杂度,在时间低的情况下,再去考虑空间复杂度

(1)LeetCode1:两数之和

方法一:两层循环,依次遍历,暴力获取和为target的索引值,时间复杂度为o(n2)
方法二:先对整数数组进行排序,然后通过双指针的方式获取和为target的索引值,时间复杂度为o(logn),因为C++中排序函数的时间复杂度为o(logn)
方式三:通过哈希表这一数据结构(C++中为unordered_map),

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> heap;for(int i = 0; i < nums.size(); i ++){int r = target - nums[i];if(heap.count(r)) return {heap[r],i};heap[nums[i]] = i;}return {};}
};

(2)LeetCode2:两数相加

/*** 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), next(next) {}* };*/
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {// 本题的基本思路就是竖式加法auto dummy = new ListNode(-1), cur = dummy;// 设置虚拟头节点dummy,这样就不用判断是否是第一位了;当然,虚拟头节点可以不加// 当要特判头节点的时候,我们才有可能用到虚拟头节点(即创建链表的时候我们要用if来判断一下是否为第一个节点)// cur是和节点的尾节点,每次链表更新插入都是从尾部插入更新的int t = 0; // 进位值while (l1 || l2 || t) { // 当l1/l2没有循环完,或者t进位值不等于0的话就继续循环// 若l1/l2没有循环完,就要继续把它们加到t的进位上去if (l1) t += l1 -> val, l1 = l1 -> next;if (l2) t += l2 -> val, l2 = l2 -> next;cur = cur -> next = new ListNode(t % 10); // 尾结点要接上上一个节点t /= 10;}return dummy -> next;}
};

(3)LeetCode3:无重复字符的最长子串

如何考虑这类问题,首先题目会给我们一个序列,然后怎么把答案找出来呢?
注意一点:怎么把所有情况都枚举到 !
step1 : 一个n个字符的序列当中,共有多少个子串呢?
大约有(n^2/2)个子串
然后我们就要从这所有子串中把无重复的子串都拿出来,并挑选出长度最长的。为此,我们要做个分类,以子串结束(当然,找开始的也行)的节点来做分类,共有n种可能,从0开始,从1开始…一直到n-1(n-1就是自己一个构成的子串)开始;
现在我们假设确定了终点i,那我们就要找到一个最左的j与之匹配构成无重复的子串,最基本的解决方法就是通过遍历 i 左边所有的j字符一起的子串,这样遍历的时间复杂度是o(n),
做一个优化:(使用双指针算法)优化的前提理论是:
当我们当前的i字符遍历完后,向后推一步,i1,i1所对应的开始元素一定在i所对应的开始元素 j 后面,这样我们就不需要重复遍历了
j一定在j`的前面!若在后面,就不满足重复字符的定义了!
(双指针的主要优化就是避免吃回头草!)在这里插入图片描述
同时,为了验证重复性,我们可以利用哈希表来确定i,j之间每个字符出现的次数!每次i往后移一格,就把i + 1加到哈希表的集合当中去,并看下是否有重复元素,如果有重复,就让j往后移,直到没有重复元素为止。

class Solution {
public:int lengthOfLongestSubstring(string s) {unordered_map<char, int> heap; //定义哈希表,统计每个元素出现的次数int res = 0; // res 是最大值for(int i = 0,j = 0; i < s.size(); i ++) { // i 为末尾指针,j为头指针, 循环是i一直往后移,当i已经移动完它这个位置的所有情况后,才会往后移动heap[s[i]] ++; // 将新的“i+1”插入到hash表中while(heap[s[i]] > 1) heap[s[j++]] --; //如果出现重复,j就要向后移动res = max(res, i - j +1); // 每移动一次,就要将其与之前的比较一次}return res;}
};
// unordered_map用于统计某个元素出现的次数
http://www.lbrq.cn/news/2676943.html

相关文章:

  • 自己电脑怎样做网站icp备案查询
  • 绍兴网站关键词推广营销技巧美剧
  • 荔湾区做网站公司做公司网站的公司
  • 建设个人网银网站南京疫情最新消息
  • 58网站模板广州网站优化公司
  • 网站建设费一般摊销几年产品推广营销方案
  • 多视频网站建设网络广告人社区
  • 可以做动感影集的网站百度收录情况查询
  • 宣城有木有专业做网站的福州网站建设
  • 手机优化怎么关闭惠州seo推广外包
  • 建网站网络推广优势百度seo2022新算法更新
  • 网页传奇网址湖北网站seo
  • 为什么做网站结构优化域名估价
  • 法律行业网站建设谷歌搜索优化seo
  • 不正规网站制作sem优化技巧
  • app界面设计说明aso优化前景
  • 打字建站宝百度指数数据分析平台官网
  • 网站的策划和建设百度推广一年多少钱
  • 装饰公司怎样做网站北京互联网公司有哪些
  • wordpress 内链引用重庆seo推广外包
  • 邢台网站设计怎么做可以免费发布广告的平台有哪些
  • 钱网站制作百度快照优化seo
  • 百度权重3的网站值多少怎么做自媒体
  • 关于电影网站的论文摘要找广告商的平台
  • 制作网站的公司哪家比较好论坛推广怎么做
  • 网络空间安全考研院校windows优化大师是哪个公司的
  • 重庆工程建设信息查询网站优化方案
  • 新乡个人网站建设哪家好资源搜索引擎搜索神器网
  • 沈阳网站关键词优化服务好常熟seo网站优化软件
  • 公司接软件开发平台seo营销工具
  • SQL中BETWEEN与IN的差异详解
  • 从“目标烂尾”到“100%交付”:谷歌OKR追踪系统如何用“透明化+强问责”打造职场责任闭环
  • Selenium动态元素定位
  • 网闸技术解析:如何实现对国产数据库(达梦/金仓)的深度支持
  • Python与MySQL数据库交互实践:自动化数据插入系统
  • AI推理的“灵魂五问”:直面2025算力鸿沟与中国的破局之路