LeetCode
风的语言_
算法逻辑黑洞领头人
展开
-
LeetCode147. 对链表进行插入排序
思路: 直插 分为有序和无序序列,本题的head头结点也有数据,所以要建立一个哑节点,后继节点指向head 单独的head节点断链,作为有序序列,然后依次遍历无序序列,用P指针遍历,q指针保存p的后继,逐个插入到有序序列中 AC错误:head也有数据 注意点: ListNode list=new ListNode() 初始化一个空节点,无值,不提倡此种写法。 ListNode list=new ListNode(0) 初始化一个节点值为0的空节点,最常用最正规写法 ListNode list=null 为空原创 2021-04-26 20:56:07 · 37 阅读 · 0 评论 -
LeetCode 881救生艇 贪心 双指针
第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 例: 输入:people = [3,2,2,1], limit = 3 输出:3 解释:3 艘船分别载 (1, 2), (2) 和 (3) 思路: 本题关键是一艘船最多坐两个人,所以最节省的方法是最重和最轻的人坐一起。 可以用反证法证明,假设最重的人未和最轻的人坐一起,而和另一人坐,那么将此人原创 2021-04-26 16:12:18 · 65 阅读 · 0 评论 -
力扣 141 环形链表: 哈希表判断 和快慢指针
class Solution { public: bool hasCycle(ListNode *head) { unordered_set<ListNode*> st; ListNode* p = head; while(!st.count(p) && p != NULL) { st.insert(p); p = p->next; }原创 2021-04-25 16:42:10 · 73 阅读 · 0 评论 -
LeetCode1 两数之和 暴力 哈希
1 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 1)暴力遍历求解: class Solution { public:原创 2021-04-20 22:04:38 · 51 阅读 · 0 评论