算法
YunusQ
Dig Code
展开
-
C++ 计算二进制数中1的个数 可用于负数 无符号数 且无需遍历整数所有位
C++计算二进制数中1的个数 试用于负数 且无需遍历整数所有位先上代码 c++int CountOnes(int n) { int count = 0; while(n) { ++count; n = n & (n - 1); } return count;}这个方法的主要思想就是找到当前数字中最靠右的1,也就是从右往左的第一个1思路简单总结:n - 1(n不为0时)会使得n的最右侧第一个1以及该位的右侧的所有位取反,此时原创 2022-03-27 14:24:17 · 330 阅读 · 0 评论 -
leetCode 21题 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
leetCode 21题 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->4迭代法定义一个哑节点dummy和一个前进节点cur;只要两个指针都不指向空,就遍历两个链表,对两个指针所指节点作如下处理:比较两个节点的值;将较小的节点放在cur后面,然后再将该节点上的指针往前移动一步;cur也往前移动一步;将非空的原创 2020-09-23 16:32:45 · 4803 阅读 · 2 评论 -
KMP算法初览
#include<stdio.h>#include<string.h>int main(){ void get(char a[], int *next); void getNext(char * p, int next[]); char a[100], b[100]; gets(a); gets(b); int i = 0,j = 0; int next...原创 2019-02-19 13:51:32 · 110 阅读 · 0 评论 -
有向图的拓扑排序和关键路径计算
实现有向图的拓扑排序和关键路径计算。在此基础上,借助OpenCV将图及其关键路径画出来。函数CriticalPath() -> 源文件CriticalPath.cpp*/下面将代码贴出 里面有详细的注释最终的结果:由opencv制成input.txt的内容1 2 51 3 72 4 33 4 63 5 34 5 44 6 44 7 45 7 26 9 4...原创 2019-05-19 22:33:48 · 1237 阅读 · 0 评论 -
hdu6375 度度熊学队列
第一次用c++里的stl题目描述:度度熊正在学习双端队列,他对其翻转和合并产生了很大的兴趣。初始时有 N 个空的双端队列(编号为 1 到 N ),你要支持度度熊的 Q 次操作。①1 u w val 在编号为 u 的队列里加入一个权值为 val 的元素。(w=0 表示加在最前面,w=1 表示加在最后面)。②2 u w 询问编号为 u 的队列里的某个元素并删除它。( w=0 表示询问并操...原创 2019-02-19 13:48:24 · 184 阅读 · 0 评论 -
hdu1050 Moving Tables 贪心算法 图理解 秒懂
可以叫做重叠法? 就是把所有经过的路径用数组记录下来,最后判断重叠最多的数组中的数 然后乘以时间。如同下图所示。emmm可能有点不清楚。直接上代码了!#include<stdio.h>#include<string.h>int main(){ int t, m,s, temp,d, a[300]; int i, j; int min; scanf("%...原创 2019-03-03 20:58:32 · 265 阅读 · 0 评论 -
实现有向图的Dijkstra最短路径算法
实现有向图的Dijkstra最短路径算法,输入起始顶点Vi和终止顶点Vj,输出从Vi到Vj的最短路径及其长度。在此基础上,借助OpenCV将图及其上从Vi到Vj的最短路径画出来。函数Dijkstra() -> 源文件Dijkstra.cpp效果图如下input.txt内容如下1 2 101 6 82 1 102 3 122 4 153 2 123 5...原创 2019-05-19 22:38:31 · 2129 阅读 · 0 评论