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

Leetcode刷题笔记--Hot91--100

1--汉明距离(461)

主要思路:

      按位异或,统计1的个数;  

#include <iostream>
#include <vector>class Solution {
public:int hammingDistance(int x, int y) {int z = x ^ y; // 按位异或int res = 0;while(z){if((z % 2) == 1) res++;z = z >> 1; // 右移}return res;}
};int main(int argc, char* argv[]){// x = 1, y = 4int x = 1, y = 4;Solution S1;int res = S1.hammingDistance(x, y);std::cout << res << std::endl;return 0;
}

2--目标和

主要思路:

        

主要思路:
        转化为 0-1 背包问题,一部分数值连同 target 转化为背包容量,剩余一部分数值转化为物品,求解恰好装满背包容量的方法数;

        dp[j] 表示背包容量为 j 时,装满背包的方法数;

        状态转移方程:dp[j] += dp[j - nums[i]],其实质是:当背包已经装了nums[i]时,剩余容量为 j - nums[i],此时装满剩余容量的方法数为 dp[j - nums[i]],遍历不同的 nums[i] 将方法数相加即可;

        是有点难理解。。。

#include <iostream>
#include <vector>class Solution {
public:int findTargetSumWays(std::vector<int>& nums, int target) {int sum = 0;for(int num : nums) sum += num;if(sum < std::abs(target)) return 0; // 数组全部元素相加相减都不能构成targetif((sum + target) % 2 == 1) return 0; // 不能二等分int bagsize = (sum + target) / 2;std::vector<int> dp(bagsize + 1, 0);dp[0] = 1;for(int i = 0; i < nums.size(); i++){ // 遍历物品for(int j = bagsize; j >= nums[i]; j--){ // 遍历背包容量dp[j] += dp[j - nums[i]];}}return dp[bagsize];}
};int main(int argc, char *argv[]) {// nums = [1, 1, 1, 1, 1], target = 3std::vector<int> test = {1, 1, 1, 1, 1};int target = 3;Solution S1;int res = S1.findTargetSumWays(test, target);std::cout << res << std::endl;return 0;
}

http://www.lryc.cn/news/213101.html

相关文章:

  • 算法训练一——链表
  • 【JAVA】类与对象的重点解析
  • ES6对象扩展
  • docker应用部署---Tomcat的部署配置
  • TestCenter测试管理工具
  • 索引切片复习
  • 想入门网络安全,这些前置准备要做好!
  • Spark新特性与核心概念
  • 设计模式_状态模式
  • css 某个元素被挤的显示不完整,如何显示完整
  • pve lxc debian 11安装docker遇到bash: sudo: command not解决办法
  • springboot的缓存和redis缓存,入门级别教程
  • 语雀P0级时间爆发,留给运维的时间不多了?
  • LeetCode 2401.最长优雅子数组 ----双指针+位运算
  • NOIP2023模拟6联测27 无穷括号序列
  • java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
  • openEuler 22.03 x86架构下docker运行arm等架构的容器——筑梦之路
  • 【Java】HashMap常见的面试题
  • openpnp - src - 配置文件载入过程的初步分析
  • 中国各城市土地利用类型(城市功能)数据集(shp)
  • Linux网络编程:数据链路层
  • python 线程 超时时间
  • LeetCode:274. H 指数、275. H 指数 II(C++)
  • 多线程及锁
  • C++ 写一个Data类的注意问题
  • postman做接口测试
  • hdlbits系列verilog解答(always块)-29
  • uniapp实现瀑布流
  • 15. 机器学习 - 支持向量机
  • 如何根据进程号查询服务的端口号