哟巴哥 2022-08-25 14:58 采纳率: 100%
浏览 25
已结题

怎么确定算法的空间复杂度

怎么确定算法的空间复杂度
#include<stdio.h>
#include<String.h>
int lengthOfLongestSubstring(char * s){
    if (s == NULL) return 0;
    int max = 0;          //记录最长的长度max
    int left = 0, right = 0;  //滑动窗口的左边界和右边界
    int dict[256] = {0};      //和前面的排序一样,搞个类似于哈希表的东西,通过数组记录其出现的相应次数;
    int index;
    for (; s[right] != '\0' ; right++){
        index = s[right];                            //得到对应字符的下标
        if(dict[index] > left) 
        left = dict[index];
        dict[index] = right+1;                            //注意:到只有一个字符时长度为1,所以这里右边界要加1
        if (max < right-left+1) 
        max = right-left+1; //更新最大值
    }
    return max;
}
main(){
 char a[99];
 gets(a);
 int n;
 n = lengthOfLongestSubstring(a);
 printf("%d",n);
}


  • 写回答

1条回答 默认 最新

  • 软泡芙 C#领域优质创作者 2022-08-25 15:05
    关注

    空间复杂度是对一个算法在运行过程中临时占用存储空间大小的一个量度,同样反映的是一个趋势,我们用 S(n) 来定义。

    (1)O(1)单个变量所占的空间永远为1

    (2)O(n)数组里面有n个值,占用了n个内存单元

    (3)O(n^2)可以想象为一个正方形,边长为n,存储了n的二次方个变量

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月25日
  • 已采纳回答 8月25日
  • 创建了问题 8月25日

悬赏问题

  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上