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

营销型网站建设方法sem和seo是什么职业岗位

营销型网站建设方法,sem和seo是什么职业岗位,专做智能化施工的网站,深圳网站营销推广公司电话191. 位1的个数 给定一个正整数 n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数(也被称为 汉明重量)。 示例 1: 输入:n 11 输出:3 解释:输入的二…

 191. 位1的个数

给定一个正整数 n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中

设置位

的个数(也被称为 汉明重量)。

示例 1:

输入:n = 11
输出:3
解释:输入的二进制串 1011 中,共有 3 个设置位。

示例 2:

输入:n = 128
输出:1
解释:输入的二进制串 10000000 中,共有 1 个设置位。

示例 3:

输入:n = 2147483645
输出:30
解释:输入的二进制串 1111111111111111111111111111101 中,共有 30 个设置位。
class Solution {
public:int hammingWeight(int n) {int res = 0;for(int i =  0; i < 32; i++){res += (1 & (n>>i));}return res;}
};

338. 比特位计数

 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。

示例 1:

输入:n = 2
输出:[0,1,1]
解释:
0 --> 0
1 --> 1
2 --> 10

示例 2:

输入:n = 5
输出:[0,1,1,2,1,2]
解释:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101
class Solution {
public:int countOnes(int x){int ret = 0;while(x > 0){x &= (x-1);ret++;}return ret;}vector<int> countBits(int n) {vector<int> ans(n+1);for(int i  = 0; i <= n; i++){ans[i] = countOnes(i);}return ans;}
};

减少函数开销 速度由3ms  ->  0ms

class Solution {
public:vector<int> countBits(int n) {vector<int> ans(n+1);for(int i = 0; i <= n; i++){int count = 0;int j = i;while(j){j &= (j-1);count++;}ans[i] = count;}return ans;}
};

 461. 汉明距离

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

给你两个整数 xy,计算并返回它们之间的汉明距离。

示例 1:

输入:x = 1, y = 4
输出:2
解释:
1   (0 0 0 1)
4   (0 1 0 0)↑   ↑
上面的箭头指出了对应二进制位不同的位置。

示例 2:

输入:x = 3, y = 1
输出:1

提示:

  • 0 <= x, y <= 231 - 1
class Solution {
public:int hammingDistance(int x, int y) {int distance = 0;int s = x ^ y;while(s) {s &= (s-1);distance++;}return distance;}
};
class Solution {
public:int hammingDistance(int x, int y) {return __builtin_popcount(x ^ y);}
};

136. 只出现一次的数字

 

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

输入:nums = [2,2,1]
输出:1

示例 2 :

输入:nums = [4,1,2,1,2]
输出:4

示例 3 :

输入:nums = [1]
输出:1
class Solution {
public:int singleNumber(vector<int>& nums) {int res = 0;for(auto e : nums){res ^= e;}return res;}
};

260. 只出现一次的数字 III

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。

示例 1:

输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。

示例 2:

输入:nums = [-1,0]
输出:[-1,0]

示例 3:

输入:nums = [0,1]
输出:[1,0]

思路:先整体由小到大排序,从前往后遍历,若i位置元素和下一位置元素相等,则i向后跳俩步,若和下一位置不相等,说明i位置元素即为出现一次的数字。

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {sort(nums.begin(), nums.end());vector<int> res;int i = 0;while(i < nums.size()-1 && res.size() != 2){if(nums[i] != nums[i+1]){res.push_back(nums[i]);i += 1;}elsei += 2;}if(res.size() != 2)res.push_back(nums[nums.size()-1]);return res;}
};

 哈希映射(注意auto 对于哈希表的用法)

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {unordered_map<int, int> hash;for(auto e : nums)hash[e]++;vector<int> res;for(const auto & [first, second] : hash)if(second == 1)res.push_back(first);return res;}
};

位运算

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {unsigned int temp = 0;for(auto e : nums)temp ^= e;temp = temp & (-temp); // 提取出最右边的1的位置int x1 = 0, x2 = 0;for(auto e : nums){if((e & temp) == 0) // 分为俩组,temp位置为1的进行异或x1 ^= e;else x2 ^= e;cout << x1<<x2; // temp位置不为1的进行异或}return {x1, x2};}
};

http://www.ds6.com.cn/news/84875.html

相关文章:

  • 外贸网站制作费用设计公司
  • 做网站几天ip网站查询服务器
  • 广东官方网站建设免费人脉推广软件
  • 广州互助网站开发google关键词排名查询
  • 十大最佳摄影网站网站推广的工作内容
  • 招聘网站建设人员条件全网搜索引擎
  • 常用的网站推广方法有哪些网站优化方式有哪些
  • 高唐做网站建设公司卖友情链接的哪来那么多网站
  • 中国做的很好的食品网站网站快照优化公司
  • 网站底部备案信息品牌营销活动策划方案
  • 电商网站建设投资预算申请域名
  • 我的世界服务器如何做充钱网站seo优化多少钱
  • 阿里云建站是外包的吗网络推广的细节
  • 宜春市住房和城乡建设局网站百度推广开户费用多少
  • 南宁本地网站有哪些?百度精准推广
  • 广州越秀区疫情最新消息今天seo网站推广的主要目的
  • 关于当当网站建设方案公众号推广费用一般多少
  • 天猫网站做链接怎么做windows清理优化大师
  • 网站链接视频怎么做优化技术基础
  • 商户如何做h5商城网站是什么网络整合营销策划书
  • 两学一做网站答题网址电商网站定制开发
  • 网页传奇手游游戏大全东莞seo建站咨询
  • 网站后台栏目发布天津做网站的公司
  • 2017做网站挣钱seo优化推广工程师
  • 个人网站风格设计网站推广业务
  • 免费网站制作教程网络营销专员的就业前景
  • 无锡哪家网站做的好济南百度公司
  • 自己怎么做百度网站最近军事新闻热点大事件
  • 网站怎么做图片转链云南百度推广开户
  • 青岛外贸网站设计百度搜索推广开户