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

408算法题leetcode--第38天

155. 最小栈

题目地址:155. 最小栈 - 力扣(LeetCode)

题解思路:两个栈,一个存数据,另一个存最小值

时间复杂度:O(1)

空间复杂度:O(n)

代码:

class MinStack {
public:
    stack<int>stk;
    stack<int>min_stk;

    MinStack() {
        // 两个栈,一个栈存最小值
        min_stk.push(INT_MAX);
    }
    
    void push(int val) {
        stk.push(val);
        min_stk.push(min(min_stk.top(), val));
    }
    
    void pop() {
        stk.pop();
        min_stk.pop();
    }
    
    int top() {
        return stk.top();
    }
    
    int getMin() {
        return min_stk.top();
    }
};

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack* obj = new MinStack();
 * obj->push(val);
 * obj->pop();
 * int param_3 = obj->top();
 * int param_4 = obj->getMin();
 */

461. 汉明距离

题目地址:461. 汉明距离 - 力扣(LeetCode)

题解思路:模拟题

时间复杂度:O(log(2^31))

空间复杂度:O(1)

代码:

class Solution {
public:
    int hammingDistance(int x, int y) {
        // z = x ^ y,检查z的每一位,如果是1就++
        int ret = 0, z = x ^ y;
        while(z){
            ret += z & 1;
            z >>= 1;
        }
        return ret;
    }
};

448. 找到所有数组中消失的数字

题目地址:448. 找到所有数组中消失的数字 - 力扣(LeetCode)

题解思路:常见模拟

时间复杂度:O(n)

空间复杂度:O(1)

代码:

class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        // 遍历nums,如4,就在下标为4的位置取负数
        // 第二次遍历nums,如果值为正数,则加入ret
        int size = nums.size();
        vector<int>ret;
        for(auto& i : nums){
            int id = abs(i);
            nums[id - 1] = -abs(nums[id - 1]);
        }
        for(int i = 0; i < size; i++){
            //cout << nums[i] << ' ';
            if(nums[i] > 0){
                ret.push_back(i + 1);
            }
        }
        return ret;
    }
};

http://www.kler.cn/news/367260.html

相关文章:

  • 面包种类图像分割系统:多层面改进
  • gin入门教程(5):请求参数处理
  • 寻找大自然的颜色
  • 在 Spring 中使用 @Cacheable 和 @CacheEvict
  • 通过rancher2.7管理k8s1.24及1.24以上版本的k8s集群
  • logback日志脱敏后异步写入文件
  • Promise、async、await 、异步生成器的错误处理方案
  • 挂耳式耳机品牌排行榜前十名有哪些?平价开放式耳机品牌推荐!
  • 【CSS3】css开篇基础(5)
  • 今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 10月27日,星期日
  • Vuejs设计与实现 — 同构渲染
  • R_机器学习——常用语法技巧汇总
  • 地球村上一些可能有助于赚钱的20个思维方式
  • php流程控制
  • 27.9 调用go-ansible执行playbook拷贝json文件重载采集器
  • 安全知识见闻-网络类型、协议、设备、安全
  • 落地台灯什么牌子好?口碑最好的落地灯品牌
  • vscode使用法则及神器介绍
  • Vue学习记录之二十三 Vue3环境变量的使用
  • 聊一聊检查代码中的输入输出错误类型有哪些
  • 大模型Transformer笔记:KV缓存
  • vscode配色主题与图标库推荐
  • 论文阅读(二十九):Multi-scale Interactive Network for Salient Object Detection
  • 一个关于@JsonIgnore的isxxx()问题
  • 接口测试(五)jmeter——get请求
  • Spring Ai 对接智谱清言结合vue(清测成功)