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

初级算法-其他

文章目录

        • 位1的个数
          • 题意:
          • 解:
          • 代码:
        • 汉明距离
          • 题意:
          • 解:
          • 代码:
        • 颠倒二进制位
          • 题意:
          • 解:
          • 代码:
        • 杨辉三角
          • 题意:
          • 解:
          • 代码:
        • 有效的括号
          • 题意:
          • 解:
          • 代码:
        • 缺失数字
          • 题意:
          • 解:
          • 代码:

位1的个数

题意:

32位二进制判断1的数量

解:

bitset

代码:
#include<iostream>
#include<bitset>
using namespace std;
int hammingWeight(uint32_t n)
{bitset<32>bs(n);return bs.count();
}
int main()
{uint32_t n;cin>>n;int ans=hammingWeight(n);cout<<ans<<endl;return 0;
}

汉明距离

题意:

两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

解:

异或 bitset

代码:
#include<iostream>
#include<bitset>
using namespace std;
int hammingDistance(int x, int y)
{bitset<32>bs(x^y);return bs.count(); 
}
int main()
{int x,y;cin>>x>>y;int ans=hammingDistance(x,y);cout<<ans<<endl;return 0;
}

颠倒二进制位

题意:

如题

解:

双指针翻转bitset

代码:
#include<iostream>
#include<bitset>
#include<algorithm> 
using namespace std;
uint32_t reverseBits(uint32_t n)
{bitset<32>bs(n);int l=0,r=31;while(l<r){bool temp=bs[l];bs[l]=bs[r];bs[r]=temp;l++;r--;}uint32_t ret=bs.to_ulong();return ret;
}
int main()
{uint32_t n;cin>>n; int ans=reverseBits(n);cout<<ans<<endl;return 0;
}

杨辉三角

题意:

如题

解:

数学推导

代码:
#include<iostream>
#include<bitset>
#include<algorithm> 
using namespace std;
vector<vector<int>> generate(int numRows)
{vector<vector<int>>ret;for(int i=1;i<=numRows;i++){//cout<<"i:"<<i<<endl;vector<int>temp;for(int j=0;j<i;j++){//cout<<"j:"<<j<<endl;if(j==0||j==i-1) temp.push_back(1);else temp.push_back(ret[i-2][j-1]+ret[i-2][j]);}ret.push_back(temp);}return ret;
}
int main()
{int n;cin>>n; vector<vector<int>>ans=generate(n);for(auto &row:ans){for(auto &col:row) cout<<col<<ends;cout<<endl;}return 0;
}

有效的括号

题意:

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

解:

经典栈处理

代码:
#include<bits/stdc++.h>
using namespace std;
bool isValid(string s)
{vector<char>stackVec(s.size());int cnt=0;map<char,char>mp={ {'{',' '},{'}','{'},{'[',' '},{']','['},{'(',' '},{')','('}};for(const auto &ch:s){//cout<<"ch:"<<ch<<"&cnt:"<<cnt<<endl;if(cnt==0) stackVec[cnt++]=ch;else{if(mp[ch]==stackVec[cnt-1]){cnt--;}else stackVec[cnt++]=ch;}//cout<<"ch:"<<ch<<"&cnt:"<<cnt<<endl;}return (cnt==0?true:false);
}
int main()
{string s;cin>>s;bool ans=isValid(s);cout<<boolalpha<<ans<<endl;return 0;
}

缺失数字

题意:

给定一个包含 [0, n]n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

解:

经典异或

主要原理:0^x=x 和 x^x=0,所以出现两遍的数字不会影响结果

代码:
#include<bits/stdc++.h>
using namespace std;
int missingNumber(vector<int>& nums)
{int n=nums.size(),ret=0;for(auto &num:nums) ret^=num;for(int i=0;i<=n;i++) ret^=i;return ret;
}
int main()
{vector<int>nums;int temp;while(cin>>temp) nums.push_back(temp);int ans=missingNumber(nums);cout<<ans<<endl;
}

相关文章:

初级算法-其他

文章目录 位1的个数题意&#xff1a;解&#xff1a;代码&#xff1a; 汉明距离题意&#xff1a;解&#xff1a;代码&#xff1a; 颠倒二进制位题意&#xff1a;解&#xff1a;代码&#xff1a; 杨辉三角题意&#xff1a;解&#xff1a;代码&#xff1a; 有效的括号题意&#xf…...

Containerd的两种安装方式

1. 轻量级容器管理工具 Containerd 2. Containerd的两种安装方式 3. Containerd容器镜像管理 4. Containerd数据持久化和网络管理 操作系统环境为centos7u6 1. YUM方式安装 1.1 获取YUM源 获取阿里云YUM源 # wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun…...

Android学习之路(1) 文本设置

Android学习之路(1) 文本 一、设置文本内容 设置文本内容的两种方式&#xff1a; 一种是在XML文件中通过属性android:text设置文本代码如下 <TextViewandroid:id"id/tv_hello"android:layout_width"wrap_content"android:layout_height"wrap_c…...

Docker相关命令与入门

1. Docker 命令 # centos 7 systemctl start docker # 启动服务 systemctl stop docker systemctl restart docker # 重启服务 systemctl status docker systemctl enable docker # 开机自启动1.1 镜像相关的命令 # 查看镜像 docker images docker images -q # 查看…...

如何配置一个永久固定的公网TCP地址来SSH远程树莓派?

文章目录 如何配置一个永久固定的公网TCP地址来SSH远程树莓派&#xff1f;前置条件命令行使用举例&#xff1a;修改cpolar配置文件 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 …...

Kubernetes架构和工作流程

目录 一、kubernetes简介 1.k8s的由来 2.为什么用 k8s &#xff1f; 3.k8s主要功能 二、k8s集群架构与组件 1.Master 组件 1.1Kube-apiserver 1.2Kube-controller-manager 1.3Kube-scheduler 2.Node组件 2.1Kubelet 2.2Kube-Proxy 2.3docker 或 rocket 3.配置存储中…...

C语言赋值号的运算顺序

从右到左。 int & f(int & a) { printf("参数 %d\n", a); return a; } int main(void) {int a 9;int b 3;f(a) f(b);// 运行到此处&#xff0c;a 3&#xff0c;b 3return 0; } 输出...

fishing之第四篇使用案例一模拟登陆口

文章目录 一、访问钓鱼平台二、Sending Profiles&#xff08;发件人邮箱配置&#xff09;三、User&Groups&#xff08;接收人邮件列表&#xff09;四、Landing Pags&#xff08;钓鱼页面配置&#xff09;五、Email Templates&#xff08;邮件内容配置&#xff09;六、Campa…...

CS 144 Lab Six -- building an IP router

CS 144 Lab Six -- building an IP router 引言路由器的实现测试 对应课程视频: 【计算机网络】 斯坦福大学CS144课程 Lab Six 对应的PDF: Lab Checkpoint 5: building an IP router 引言 在本实验中&#xff0c;你将在现有的NetworkInterface基础上实现一个IP路由器&#xf…...

edge://settings/defaultbrowser default ie

Microsoft Edge 中的 Internet Explorer 模式 有些网站专为与 Internet Explorer 一起使用&#xff0c;它们具有 Microsoft Edge 等新式浏览器不支持的功能。 如果你需要查看其中的某个网站&#xff0c;可使用 Microsoft Edge 中的 Internet Explorer 模式。 大多数网站在新…...

Centos7安装jdk8教程——rpm安装

1. rpm文件下载 下载链接 Java SE 8 Archive Downloads (JDK 8u211 and later) 2.上传到服务器指定路径下并安装 切换到上传目录&#xff0c;然后执行以下命令 rpm -ivh jdk-8u221-linux-x64.rpm3. 设置环境变量并重载配置 # 设置环境变量 vim /etc/profile# 文件末尾添加…...

Node.js-path模块操作路径的基本使用

path模块提供了操作路径的功能&#xff0c;以下为常用的API。 path.resolve()&#xff1a;拼接规范的绝对路径 const path require("path"); // 目录的绝对路径 // __dirname: D:\node\path const pathStr path.resolve(__dirname, "index.html"); // 拼…...

油猴脚本:验证码识别辅助器

脚本信息 描述&#xff1a;当鼠标放在验证码图片上时&#xff0c;显示弹窗并提供识别选项 实现逻辑 定义了一个isRectangle函数&#xff0c;用于判断图片是否符合验证码的特征。判断条件是&#xff1a;图片的宽高比大于1.5&#xff0c;宽度大于等于80且高度大于等于30&#…...

【力扣】24. 两两交换链表中的节点 <栈>

【力扣】24. 两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;hea…...

C#中控件的invoke方法

https://www.exyb.cn/news/show-280348.html 在用.NET Framework框架的WinForm构建GUI程序界面时&#xff0c;如果要在控件的事件响应函数中改变控件的状态&#xff0c;例如&#xff1a;某个按钮上的文本原先叫“打开”&#xff0c;单击之后按钮上的文本显示“关闭”&#xff0…...

x光下危险物品/违禁物品目标识别的模型训练与推理代码

前言 1.安检在公共场合的重要性不言而喻&#xff0c;保障群众人身安全是其首要任务。在各种场合&#xff0c;安检都是不可或缺的环节。x光安检机作为安检的重要工具&#xff0c;尽管其具有人工监控判断成像的特性&#xff0c;但是其局限性也十分明显。 为了解决这一局限性为出…...

基于Matlab实现图像融合技术(附上多个仿真源码+数据)

图像融合技术是一种将多幅图像融合为一幅图像的方法&#xff0c;使得这幅融合图像包含原始图像的所有信息。近年来&#xff0c;图像融合技术已经广泛应用于图像分割、变换和裁剪等领域。本文将介绍如何使用Matlab实现图像融合技术。 实现步骤 首先&#xff0c;我们需要了解图…...

国家级与省级开发区设立超长时间段数据(1970-2022年)

在基于因果推断方法的政策评估备受经济学研究欢迎的今天&#xff0c;将一个重要政策作为外生冲击进行计量建模这一做法&#xff0c;是很多顶刊论文的“宠儿”&#xff0c;大家整理分享的国家级与省级开发区设立超长时间段数据正是其中的代表。 我国各级人民ZF均将开发区设立作为…...

数据结构 10-排序4 统计工龄 桶排序/计数排序(C语言)

给定公司名员工的工龄&#xff0c;要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数&#xff08;≤&#xff09;&#xff0c;即员工总人数&#xff1b;随后给出个整数&#xff0c;即每个员工的工龄&#xff0c;范围在[0, 50]。 输出格式: 按工龄的递…...

SpringBoot复习:(16)TomcatStarter

直接在idea里运行SpringBoot程序时&#xff0c;内嵌的tomcat容器会调用TomcatStarter这个类的onStartup方法。TomcatStarter继承自ServletContainerInitializer 其onStartup方法会调用ServletContextInitializer&#xff08;不是ServletContainerInitializer)的onStartup方法.…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...