数据结构和算法问题

数据结构和算法问题

现状 统计
总C++问题 188
总体 Python 问题 15
当前每日连胜 11
最后的连胜 06/20/2019 - 06/21/2019
当前连胜 06/23/2019 - 07/03/2019

注意:这里的一些代码是旧的,是在我学习C++时编写的。代码可能不安全或做出错误的假设。请谨慎使用。始终欢迎拉取请求。

链接列表问题

问题 溶液
从最后一个节点开始查找链表的第 n 个节点。 nthToLastNode.cpp, nth_to_last_node.py
将数字相加,其中数字的每个数字都由链接列表的节点表示。将输出作为链表提供。 add_two_numbers_list.py add_two_numbers_lists.cpp
交换链接列表的节点而不交换数据。 swapNodesWithoutSwappingData.cpp, swap_nodes_without_swapping_data.py
以迭代和递归方式反转链表 reverseLinkedListIterAndRecurse.cpp, reverse_linkedlist.py
给定一个链表,反向备用节点并在末尾追加。 反向交替节点.cpp
仅给定一个节点指针,从链接列表中删除该节点。 删除节点.cpp
删除整个链接列表。 删除链接列表.cpp
打印链接列表的中间节点,无需迭代两次。 printMiddleNode.cpp
确定链表是否为苍白。 列表棕榈树.cpp
在排序的链接列表中插入数据。 insertInASortedLinkedList.cpp
确定两个给定链表的交点(合并)。 findIntersectionPointOfLists.cpp, intersection_of_lists.py
克隆一个链接列表,其中包含下一个和一个随机指针,空间复杂性 - O(1)。 cloneListWithRandomPtr.cpp, clone_list_with_random_ptr.py
给定一个包含重复项的已排序链接列表,在一次迭代中删除重复项。 删除重复来自排序列表.cpp
使用弗洛伊德循环查找算法,检测链表是否包含循环,如果它确实包含循环,则删除循环 浮选环检测.cpp
使用合并排序对链接列表进行排序 merge_sort.cpp
给定一个单一的链接列表 L0-> 升1-> ... -> Ln-1-> 升n.重新排列列表中的节点(就地),以便新形成的列表为: L0-> 升n-> 升1-> 升n-1-> 升2-> 升n-2.... rearrange_list.cpp

包括

Include 包含数据结构和某些算法的单个标头实现。

数据结构/算法 实现
通用宏和算法,如交换、随机数生成 generic.h
通用堆栈实现 stack.h
通用队列实现 queue.h
泛型列表实现 列表.h
二叉搜索树实现 二进制搜索树.h
快速排序实现 quickSort.h
合并排序实现 mergeSort.h
选择排序实现 选择排序.h
气泡排序实现 bubbleSort.h
Linux Kernel Double LinkedList 实现 double_linked_list.h
通用图形实现(邻接列表) 图.h
堆排序实现 heap_sort.h
我自己的字符串库实现 pstring.h pstring.cpp

位操作问题

问题 溶液
确定数字是否为2的幂。 power_of_2.cpp
添加两个表示为字符串的二进制数。 addBin.cpp
确定给定数字的下一个幂 2。 next_power_of_2.cpp
使用位操作确定数字是否为 3 的倍数。 multiple_of_3.cpp
确定机器的端度,以反向端度打印一个数字。 反向常量.cpp
查找给定数字的奇偶校验。 find_parity.cpp
使用位操作实现数字到 7 的快速乘法。 multiply_by_7.cpp
反转无符号整数位(两种方法 - 逐位反转和分而治之)。 reverseBitsOfAnInteger.cpp
小函数,用于确定给定整数中右最设置位的位置。 right_most_set_bit.cpp
给定一个数字向量,只有一个数字出现奇数次,找到该数字。 find_odd_one_out.cpp
给定两个整数,确定它们的总和是否会是间歇性溢出。 整数溢出.cpp
将数字 A 转换为 B 需要多少位翻转操作。 计数位数比特翻转.cpp
在 x 的二进制表示形式中给定一个数字 x 和两个位置(从右侧开始),编写一个函数,该函数在给定的两个位置交换 n 个右位并返回结果。还假定这两组位不重叠。 swapSetOfBits.cpp
在不使用任何算术运算符的情况下将两个数字相加 addition_without_operators.cpp
路易丝和理查德玩一个游戏。他们有一个计数器设置为N.Louise获得第一个转弯,然后转弯交替。在游戏中,它们执行以下操作:
  • 如果 N 不是 2 的幂,则将计数器的最大 2 次幂减小到 N。
  • 如果 N 是 2 的幂,则将计数器减小 N 的一半。
生成的值是新的 N,它再次用于后续操作。当计数器减少到1时,游戏结束,即N == 1,最后一个做出有效移动的人获胜。
  • 给定 N,你的任务是找到游戏的赢家。如果他们逆向1,理查德获胜,因为轮到露易丝了,她不能采取行动。
  • 输入格式 :-第一行包含一个整数 T
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

当天空中出现星光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值