力扣题目训练(7)

news2024/11/25 16:50:35

2024年1月31日力扣题目训练

  • 2024年1月31日力扣题目训练
    • 387. 字符串中的第一个唯一字符
    • 389. 找不同
    • 401. 二进制手表
    • 109. 有序链表转换二叉搜索树
    • 114. 二叉树展开为链表
    • 52. N 皇后 II

2024年1月31日力扣题目训练

2024年1月31日第七天编程训练,今天主要是进行一些题训练,包括简单题3道、中等题2道和困难题1道。前几天家里有事加上有一个作业所以没办法只能拖到今天,今天能写也是利用了作业数据下载的时间,但是我不会放弃的我会认真完成的。

387. 字符串中的第一个唯一字符

链接: 唯一字符
难度: 简单
题目:
题目描述

运行示例:
运行示例

思路:
找唯一就是计数,我采用的是哈希表。
代码:

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map<char,int> res;
        for(char ch: s){
            res[ch]++;
        }
        for(int i = 0; i < s.size(); i++){
            if(res[s[i]] == 1){
                return i;
            }
        }
        return -1;
    }
};

389. 找不同

链接: 找不同
难度: 简单
题目:
题目描述

运行示例:
运行示例

思路:
找出添加的字母,也就是计数看哪个多了,所以我采用了哈希表。
代码:

class Solution {
public:
    char findTheDifference(string s, string t) {
        unordered_map<char,int>res;
        char ans;
        for(int i = 0; i < s.size(); i++){
            res[s[i]]++;
        }
        for(int i = 0; i < t.size(); i++){
            if(res[t[i]] == 0){
                ans = t[i];
            } 
            else res[t[i]]--;
        }
        return ans;
    }
};

401. 二进制手表

链接: 二进制手表
难度: 简单
题目:
题目描述
在这里插入图片描述
在这里插入图片描述

运行示例:
运行示例

思路:
这道题本质就是看二进制中总共有多少个1,所以利用位运算取最高4位和低6位然后计算。
代码:

class Solution {
public:
    vector<string> readBinaryWatch(int turnedOn) {
        vector<string> ans;
        if(turnedOn >= 9) return ans;
        for(int i = 0; i < 1024; i++){
            int h = i >>6;
            int m  = i & 63;
            if(h < 12 && m < 60 && __builtin_popcount(i) == turnedOn){
                ans.push_back(to_string(h)+":"+(m<10?"0":"")+to_string(m));
            }
        }
        return ans;
    }
};

109. 有序链表转换二叉搜索树

链接: 二叉搜索树
难度: 中等
题目:
题目描述

运行示例:
运行示例

思路:
对于二叉搜索树,如果对其进行中序遍历,得到的值序列是递增有序的。此外左右子树高度差不超过1,利用这两条性质通过分治和中序遍历完成这道题。
代码:

class Solution {
public:
    int getLength(ListNode* head){
        int count = 0;
        while(head!=NULL){
            count++;
            head = head->next;
        }
        return count;
    }
    TreeNode* buildTree(ListNode* &head,int left,int right){
        if(left > right) return NULL;
        int mid = (left+right+1)/2;
        TreeNode* root = new TreeNode();
        root->left = buildTree(head, left, mid-1);
        root->val =  head->val;
        head = head->next;
        root->right = buildTree(head,mid+1,right);
        return root;
    }
    TreeNode* sortedListToBST(ListNode* head) {
        int length = getLength(head);
        return buildTree(head,0,length-1);
    }
};

114. 二叉树展开为链表

链接: 展开为链表
难度: 中等
题目:
题目描述

运行示例:
运行示例

思路:
二叉树前序遍历的顺序为:根左右。
这个结果也是前序遍历的结果,所以可以利用前序遍历解决。
代码:

class Solution {
public:
    void preorder(TreeNode*root,vector<TreeNode*> &res){
        if(root != NULL){
            res.push_back(root);
            preorder(root->left,res);
            preorder(root->right,res);
        }
        
    }
    void flatten(TreeNode* root) {
        vector<TreeNode*> res;
        preorder(root,res);
        for(int i = 1 ; i < res.size(); i++){
            TreeNode*pre = res[i-1];
            TreeNode*curr = res[i];
            pre->left = NULL;
            pre->right = curr;
            
        }
    }
};

52. N 皇后 II

链接: N 皇后
难度: 困难
题目:
题目描述

运行示例:
运行示例

思路:
这与上次的51.N皇后类似,只是输出一个是解决,一个是总数。利用的是回溯法。
代码:

class Solution {
private:
    int res = 0;
public:
    bool isValid(vector<string>& board,int row, int col){
        int n = board.size();
        for(int i = 0; i < n; i++){
            if(board[i][col] == 'Q') return false;
        }
        for (int a = row, b = col; a >= 0 && b >= 0; a--, b--) { // 左上
            if (board[a][b] == 'Q') return false;
        }
        for (int a = row, b = col; a >= 0 && b < n; a--, b++) { // 右上
            if (board[a][b] == 'Q') return false;
        }
        return true;
    }
    void backtrack(vector<string>&board,int row,int n){
        if(row == n) 
        {
            res++;
            return;
        }
        for(int i = 0; i < n; i++){
            if(isValid(board,row,i)){
                board[row][i] = 'Q';
                backtrack(board,row+1,n);
                board[row][i] = '.';
            }
        }
    }
    int totalNQueens(int n) {
        vector<string> board(n, string(n, '.'));
        backtrack(board, 0,n);
        return res;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1433701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小型内衣洗衣机什么牌子好?家用小型洗衣机推荐

内衣裤作为我们日常必备的贴身衣物&#xff0c;所以对卫生方面的要求也比较高&#xff0c;但对许多人们而言&#xff0c;对内衣裤进行清洗是一项相当繁琐的事情&#xff0c;主要是因为并不能直接把内衣裤放入大型洗衣机里和其它衣服混合洗&#xff0c;所以大多数用户都会自己动…

2024美赛数学建模C题完整论文教学(含十几个处理后数据表格及python代码)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了数学建模美赛本次C题目Momentum in Tennis完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 C论文共49页&…

程序员想告赢开发商一户一表违约(终审判决)——铁拳迟到会打到每一个人...

二审的结果并没有出乎我的意料&#xff1a;维持原判。所以是我输了这场官司。 只是我输得非常不服气。 在二审中&#xff0c;我变换思路&#xff0c;以以下思路进行辩论&#xff1a; 1. 从“正式供电”方向&#xff0c;使用国家国标和法律法规证明小区目前非正式用电&#xff0…

三维模型的面数、段数、曲面必须进行精简优化?使用什么技术或手段实现最优解呢?

大师重建设置里面可以选择是否对三角网进行简化。数据简化介绍&#xff1a;针对弱纹理区域的三角网&#xff0c;简化面的智能识别处理。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息…

关于服务器解析A记录和CNAME记录的分析

内容提要: 大致讲下理解,dns域名解析这一块 0 . 问题来源 最近搞了一个七牛云上传,然后需要配置融合cdn加速,也就是可以加速域名,中间有一部需要CNAME 域名,也就是将七牛云提供的域名CNAME一下,查阅资料其实就是起一个别名,好访问而已. 方便我们访问云存储,达到加速的效果. …

ONLYOFFICE 文档 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新

我们最新版本的在线编辑器现已推出&#xff0c;为整个套件优化了多项功能。阅读下文&#xff0c;了解详细更新内容。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一款开源的办公套件&#xff0c;由总部位于拉脱维亚的Ascensio System SIA开发。它支持处理文本文档、电子表格、演…

1216 - 数塔问题

题目 有如下所示的数塔&#xff0c;要求从底层走到顶层&#xff0c;若每一步只能走到相邻的结点&#xff0c;则经过的结点的数字之和最大是多少&#xff1f; 输入 输入数据首先包括一个整数整数 N (1≤N≤100)&#xff0c;表示数塔的高度&#xff0c;接下来用 N 行数字表示数…

力扣热门100题刷题笔记 - 5.最长回文子串

力扣热门100题 - 5.最长回文子串 题目链接&#xff1a;5. 最长回文子串 题目描述&#xff1a; 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。示例&#xff1a; 输入&#xff1a;s "…

FFMPEG推流到B站直播

0、参考 ffmpeg安装参考小弟另外的一个博客&#xff1a;FFmpeg和rtsp服务器搭建视频直播流服务-CSDN博客推流参考&#xff1a;用ffmpeg 做24小时推流直播_哔哩哔哩_bilibili 一、获取b站直播码 点击开始直播后&#xff0c;会出现以下的画面 二、ffmpeg进行直播推流 ffmpeg -r…

python常用pandas函数nlargest / nsmallest及其手动实现

目录 pandas库 Series和DataFrame nlargest和nsmallest 用法示例 代替方法 手动实现 模拟代码 pandas库 是Python中一个非常强大的数据处理库&#xff0c;提供了高效的数据分析方法和数据结构。它特别适用于处理具有关系型数据或带标签数据的情况&#xff0c;同时在时间…

速过计算机二级python——第六讲:文件操作

第六讲:文件操作 文件夹创建文件夹移动文件夹复制文件夹删除文件夹文件操作文件读取文件写入文件文件夹 创建文件夹 定义创建文件夹函数:chmk_path()定义一个函数 chmk_path(),这个函数的功能是创建文件夹。 首先需要导入操作系统接口模块——os 模块,这个模块中包含某些函…

Linux校准时间 Centos

Linux校准时间 Centos 首先&#xff0c;确保系统中已经安装了tzdata包。如果没有安装&#xff0c;可以使用以下命令安装&#xff1a; sudo yum install tzdata设置系统时区为上海&#xff1a; sudo timedatectl set-timezone Asia/Shanghai验证时区设置是否生效&#xff1a;…

STM32F407 CAN参数配置 250Kbps

本篇CAN参数适用 芯片型号&#xff1a;STM32F407xx系统时钟&#xff1a;168MHz&#xff0c;CAN挂载总线APB1为42M波 特 率 &#xff1a;250Kpbs引脚使用&#xff1a;TX_PB9&#xff0c;RX_PB8&#xff1b;修改为PA11PA12后&#xff0c;参数不变。 步骤一、打勾开启CAN&#xf…

视频业务像素、带宽、存储空间计算

一、像素和分辨率 分辨率的单位通常是像素&#xff08;或点&#xff09;&#xff0c;用水平像素数乘以垂直像素数来表示。例如&#xff0c;一个分辨率为1920 x 1080的屏幕有1920个水平像素和1080个垂直像素。 总像素分辨率公式运算 例如 1920 x 10802073600总约200万 500W≈…

Rocky8+MHA搭建

文章目录 1、MHA 是什么1.1、MHA概念1.2、MHA 组成1.3、MHA特点 2、MHA架构2.1、MHA架构设计2.2、MHA准备工作2.3、服务器基础配置2.3.1、hosts配置2.3.2、修改主机名2.3.3、配置防火墙2.3.4、更新所有服务器2.3.5、所有服务器相互授权 3、mysql8安装3.1、卸载旧mysql3.2、安装…

幻兽帕鲁专用服务器,多人游戏(专用服务器)搭建

玩转幻兽帕鲁服务器&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

react和antd学习笔记

概论 react是前端框架&#xff0c;antd是组件库。前端框架和组件库的区别与联系 nodejs 脚本语言需要一个解析器才能运行&#xff0c;JavaScript是脚本语言&#xff0c;在不同的位置有不一样的解析器&#xff0c;如写入html的js语言&#xff0c;浏览器是它的解析器角色。而对…

网络安全产品之准入控制系统

文章目录 一、什么是准入控制系统二、准入控制系统的主要功能1. 接入设备的身份认证2. 接入设备的安全性检查 三、准入控制系统的工作原理四、准入控制系统的特点五、准入控制系统的部署方式1. 网关模式2. 控制旁路模式 六、准入控制系统的应用场景七、企业如何利用准入控制系统…

大数据 - Spark系列《三》- 加载各种数据源创建RDD

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 目录 3.1&#x1f9c0;加载文件(本地) 1. 加载本地文件路径 &#x1f32e;使用te…

倍增法+LCA(C/C++)

目录 1 介绍 2 基本模板 1 介绍 倍增法(binary lifting)&#xff0c;是一种每次将情况翻倍从而将线性处理转化为对数级处理&#xff0c;进而极大优化时间复杂度的方法。 2 基本模板 //预处理复杂度同为O(nlogn),查询时间上&#xff0c;ST表为O(1),线段树为O(logn) #inc…