力扣
得到零的操作数(递归)
class Solution {
//(1) 如果num1或者num2本身就是0的情況,直接返回0 ;
// (2) 否则,把两者中小的那个叫min,大的那个叫max ,
// 那么返回的应该是递归调用 max-min和min的情况 。
public:
int countOperations(int num1, int num2) {
//若X是“0”(为假),则“!x”就不是零(为真),
//则里面为真,进入if下的大{}。
//若X不是“0”(为真),则“!x”就是零(为假),则里面为假,跳过if下的大{}。
if( !num1 || !num2) return 0;//说白这里 !num1 其实就是 num1 !=0
int min=num1 < num2 ? num1 : num2;
int max = num1 > num2 ? num1 : num2;
return 1+ countOperations(max-min,min);
}
};
合并链表(快慢指针)
141. 环形链表 - 力扣(LeetCode) (leetcode-cn.com)
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode* fast=head ;
ListNode* slow=head;
while(fast != NULL && fast->next != NULL)
{ //设置每一步,快指针都比慢指针快两步————这样就可以达到慢指针走完一周了快指针刚好第二周
slow = slow->next;
fast = fast->next->next;
if(fast == slow) return true;
}
return false;
}
};
|