【每日刷题】Day28

【每日刷题】Day28

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

[1. 121. 买卖股票的最佳时机 - 力扣(LeetCode)](#1. 121. 买卖股票的最佳时机 - 力扣(LeetCode))

[2. 205. 同构字符串 - 力扣(LeetCode)](#2. 205. 同构字符串 - 力扣(LeetCode))

[3. 204. 计数质数 - 力扣(LeetCode)](#3. 204. 计数质数 - 力扣(LeetCode))

1. 121. 买卖股票的最佳时机 - 力扣(LeetCode)

//思路:暴力遍历。直接遍历整个数组,找到最小值当天买入股票,卖出股票的时间一定在买入股票之后,当我们在找到最小值后直接让下标向后走,找到卖出股票与买入股票差值的最大值,记录返回。

int maxProfit(int* prices, int pricesSize)

{

int ans = 0;

int min = prices[0];//开始假设买入股票最小值在第一天

for(int i = 1;i<pricesSize;i++)

{

if(prices[i]<min)//遍历找到买入股票最小值

{

min = prices[i];

continue;//找到直接让i++向后遍历找卖出股票最大值

}

if(ans<prices[i]-min)//记录两者差值的最大值

{

ans = prices[i]-min;

}

}

return ans;

}

2. 205. 同构字符串 - 力扣(LeetCode)

//0ms 100%思路:使用两个哈希表相互映射,如果其中一个哈希表中的某个元素映射到另一个哈希表中的值不是唯一的,直接返回false。

bool isIsomorphic(char* s, char* t)

{

if(s==NULL)//最后一个用例给出的字符串为NULL,这里需要特别处理以下

{

return false;

}

int hashs[500] = {0};//字符串t中的字符在哈希表s中映射

int hasht[500] = {0};//字符串s中的字符在哈希表t中映射

int x = strlen(s);

int y = strlen(t);

if(x!=y)//长度不一样直接返回false

{

return false;

}

for(int i = 0;i<x;i++)

{

if(t[i]!=hashs[s[i]]&&hashs[s[i]]!=0)//如果字符串t中的字符在哈希表s中的值不是唯一的,则返回false

{

return false;

}

if(s[i]!=hasht[t[i]]&&hasht[t[i]]!=0)//如果字符串s中的字符在哈希表t中的值不是唯一的,则返回false

{

return false;

}

hashs[s[i]] = t[i];//将字符串t中的字符映射到哈希表s中

hasht[t[i]] = s[i];//将字符串s中的字符映射到哈希表t中

}

return true;

}

3. 204. 计数质数 - 力扣(LeetCode)

//思路:埃氏筛。用一个数组,数组中只存储0和1,0代表是质数,1代表不是质数,当遇到质数 i 时,将从i^2开始到n的所有+=上i(包括i^i本身)的数在数组中置为1,然后继续遍历数组找到为0(说明是质数)的数重复上述过程

int countPrimes(int n)

{

if(n<2)

{

return 0;

}

int ans = 0;

int arr[n];

memset(arr,0,sizeof(arr));//将数组中的元素全部置为0

for(int i = 2;i<n;i++)

{

if(!arr[i])//如果数组i位置处元素为0,说明i为质数

{

ans+=1;//是质数,计数器++

if((long long)i*i<n)

{

for(int j = i*i;j<n;j+=i)//将从i^2开始到n的所有+=上i(包括i^i本身)的数在数组中置为1

{

arr[j] = 1;

}

}

}

}

return ans;

}

相关推荐
✿ ༺ ོIT技术༻10 分钟前
笔试强训:Day2
开发语言·c++·笔记·算法
飞桨PaddlePaddle2 小时前
Wan2.1和HunyuanVideo文生视频模型算法解析与功能体验丨前沿多模态模型开发与应用实战第六期
人工智能·算法·百度·音视频·paddlepaddle·飞桨·deepseek
Starry_hello world3 小时前
C++ 快速幂算法
c++·算法·有问必答
石去皿4 小时前
力扣hot100 91-100记录
算法·leetcode·职场和发展
SsummerC5 小时前
【leetcode100】组合总和Ⅳ
数据结构·python·算法·leetcode·动态规划
尤物程序猿6 小时前
【2025面试Java常问八股之redis】zset数据结构的实现,跳表和B+树的对比
数据结构·redis·面试
2301_807611496 小时前
77. 组合
c++·算法·leetcode·深度优先·回溯
YuforiaCode7 小时前
第十三届蓝桥杯 2022 C/C++组 修剪灌木
c语言·c++·蓝桥杯
SsummerC7 小时前
【leetcode100】零钱兑换Ⅱ
数据结构·python·算法·leetcode·动态规划
好易学·数据结构8 小时前
可视化图解算法:二叉树的最大深度(高度)
数据结构·算法·二叉树·最大高度·最大深度·二叉树高度·二叉树深度