力扣题目训练(7)

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.mzph.cn/news/666878.shtml

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

相关文章

springboot jar包编写启动start.sh

对于Spring Boot应用&#xff0c;由于其内置了用于启动的主类&#xff08;默认为org.springframework.boot.loader.JarLauncher或你自定义的SpringBootApplication注解的类&#xff09;&#xff0c;因此start.sh脚本可以相对简化。以下是一个针对Spring Boot应用的start.sh脚本…

springcloud-gateway升级版本allowedOrigins要改allowedOriginPatterns

前言 报错: java.lang.IllegalArgumentException: When allowCredentials is true,allowedOrigins cannot contain the special value "*"since that cannot be set on the "Access-Control-Allow-Origin"response header. To allow credentials to a se…

C语言第十八弹---指针(二)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、const修饰指针 1.1、const修饰变量 1.2、const修饰指针变量 2、指针运算 2.1、指针- 整数 2.2、指针-指针 2.3、指针的关系运算 3、野指针 3.1、…

HBase 数据导入导出

HBase 数据导入导出 1. 使用 Docker 部署 HBase2. HBase 命令查找3. 命令行操作 HBase3.1 HBase shell 命令3.2 查看命名空间3.3 查看命名空间下的表3.4 新建命名空间3.5 查看具体表结构3.6 创建表 4. HBase 数据导出、导入4.1 导出 HBase 中的某个表数据4.2 导入 HBase 中的某…

linux系统haproxy负载均衡工具的介绍以及使用

haproxy 概述haproxy的特点haproxy算法haproxy做四层负载均衡haproxy做七层负载均衡 概述 ha-proxy是一款高性能的负载均衡软件。其专注于负载均衡这一些事情&#xff0c;因此与nginx比起来&#xff0c;负载均衡做的更好haproxy---主要是做负载均衡的7层&#xff0c;也可以做4…

视觉惯性SLAM系列——ORB-SLAM3的整体介绍及各个线程的功能(五)

ORB-SLAM3的整体介绍及各个线程的功能&#xff08;五&#xff09; ORB-SLAM3是一个多线程的系统&#xff0c;它主要包含以下几个线程&#xff0c;每个线程负责不同的功能&#xff1a; 跟踪线程&#xff08;Tracking Thread&#xff09;&#xff1a; 作用&#xff1a;负责处理每…

openGauss DataPod资源池化获金融科技产业联盟2023年十佳课题

NEWS 近日&#xff0c;由中国人民银行指导的北京金融科技产业联盟公布2023年度十佳课题评选结果&#xff0c;由openGauss社区牵头的《资源池化数据库金融关键业务场景技术研究》荣获了“北京金融科技产业联盟2023年度十佳课题。” 2023年&#xff0c;openGauss发布5.0.0和5.1.…

【Node系列】node核心模块util

文章目录 一、util介绍二、util模块函数三、node介绍四、热门文章推荐 一、util介绍 Node.js的核心模块util为开发者提供了一些常用的实用工具函数。这些函数能够很方便地进行对象的继承、类型判断以及其他工具函数的实现。 util模块主要提供了以下几个功能&#xff1a; 继承…

vulhub中 Apache Airflow Celery 消息中间件命令执行漏洞复现(CVE-2020-11981)

Apache Airflow是一款开源的&#xff0c;分布式任务调度框架。在其1.10.10版本及以前&#xff0c;如果攻击者控制了Celery的消息中间件&#xff08;如Redis/RabbitMQ&#xff09;&#xff0c;将可以通过控制消息&#xff0c;在Worker进程中执行任意命令。 1.利用这个漏洞需要控…

Postgresql源码(120)事务XID分配与主备XID同步

参考 《Postgresql源码&#xff08;25&#xff09;子事务可见性判断和性能问题》 XID获取顶层入口 函数&#xff1a;AssignTransactionId static void AssignTransactionId(TransactionState s) {...优先给没有事务ID的父事务分配 确保父事务有 XID&#xff0c;以便子事务总是…

倒计时65天

复习2。 一.╥﹏╥...倒计时72天╥﹏╥...-CSDN博客 1.* #include<bits/stdc.h> using namespace std; #define int long long const int N3e35; const int inf0x3f3f3f3f; int a[N][N],b[N][N]; void solve() {int n;cin>>n;for(int i1;i<n;i){for(int j1;j…

Spring Boot 依赖管理:spring-boot-dependencies vs spring-boot-starter-parent

在Spring Boot项目中&#xff0c;有多种方式来管理和配置依赖&#xff0c;本文将详细解析两种主要的依赖配置方法——通过spring-boot-dependencies与spring-boot-starter-parent&#xff0c;并分析它们各自的优缺点以指导开发者的实际应用。 1. spring-boot-dependencies 的使…

全流程机器视觉工程开发(四)PaddleDetection C++工程化应用部署到本地DLL以供软件调用

前言 我们之前跑了一个yolo的模型&#xff0c;然后我们通过PaddleDetection的库对这个模型进行了一定程度的调用&#xff0c;但是那个调用还是基于命令的调用&#xff0c;这样的库首先第一个不能部署到客户的电脑上&#xff0c;第二个用起来也非常不方便&#xff0c;那么我们可…

Java八大常用排序算法

1冒泡排序 对于冒泡排序相信我们都比较熟悉了&#xff0c;其核心思想就是相邻元素两两比较&#xff0c;把较大的元素放到后面&#xff0c;在一轮比较完成之后&#xff0c;最大的元素就位于最后一个位置了&#xff0c;就好像是气泡&#xff0c;慢慢的浮出了水面一样 Jave 实现 …

2024 RTE行业(实时互动行业)人才发展学习总结

解决方案 人才画像 开发者人才素质要求&#xff1a; 具备多个领域的技术知识注重团队合作&#xff0c;具备协作能力以用户为导向的用户体验意识具备创新思维和解决问题的能力需快速响应行业变化和持续的学习能力具备项目管理能力 学习和吸收新知识的渠道 RTE人才分类

操作系统透视:从历史沿革到现代应用,剖析Linux与网站服务架构

目录 操作系统 windows macos Linux 服务器搭建网站 关于解释器的流程 curl -I命令 名词解释 dos bash/terminal&#xff0c;(终端) nginx/apache&#xff08;Linux平台下的&#xff09; iis&#xff08;Windows平台下的&#xff09; GUI(图形化管理接口&#xff…

开源软件之光:促进创新与协作的引擎(AI)

开源软件之光&#xff1a;促进创新与协作的引擎 引言开源软件的定义开源软件的推动力 1. 创新的温床2. 协作的桥梁3. 自由的理念 开源软件对软件行业的影响 1. 业务模式的革新2. 技术水平的提升3. 标准的制定 开源软件对社会的深远影响 1. 数字包容性的推动者2. 共享文化的倡导…

【51单片机系列】应用设计——8路抢答器的设计

51单片机应用——8路抢答器设计 文章设计文件及代码&#xff1a;资源链接。 文章目录 要求&#xff1a;设计思路软件设计仿真结果 要求&#xff1a; &#xff08;1&#xff09; 按下”开始“按键后才开始抢答&#xff0c;且抢答允许指示灯亮&#xff1b; &#xff08;2&…

聚道云软件连接器助力餐饮企业实现数字化管理

客户介绍 某餐饮有限责任公司是一家历史悠久、口碑良好的连锁餐饮公司。公司总部位于北京市&#xff0c;拥有多家门店&#xff0c;覆盖了北京市内的各个区域。每家门店都以独特的装修风格和优雅的环境为顾客营造温馨舒适的用餐氛围。作为一家知名的连锁餐饮公司&#xff0c;在…

过好“苏州年”!沉浸式名城非遗文化体验展 2月10日正式启幕

擦亮非遗文化底色&#xff0c;绘就历史文化名城金名片 天工开画卷&#xff0c;苏作见匠心&#xff0c;在2024龙年到来之际&#xff0c;“匠海拾遗-沉浸式名城非遗文化体验展” 将于2月10日在江苏省省级文物保护单位——江苏按察使署旧址内举办。此次非物质文化遗产&#xff08;…