笔记
安兹_乌尔恭
这个作者很懒,什么都没留下…
展开
-
计算快速幂
这应该是个简单的小算法,作用是求a的b次幂,按照正常的思路,就是累乘b次a int reminder(int base, int mi) { int rem = 1; while (mi--) rem *= base; return rem; } 朴实无华的O(n),平平淡淡的TLE。 要优化,举个7的10次方的例子 7^10 = 7*7*7*7*7*7*7*7*7*7//九次运算 等于49的五次方 49*49*49*49*49//六次运算(第一次是把底数平方) 快原创 2021-05-29 11:37:54 · 128 阅读 · 0 评论 -
力扣第八题 myatoi
这一题其实并不算难,只是在考验细心程度而已。 这是我第一次提交的代码 class Solution { public: int myAtoi(string& s) { int len = s.size(); int pre = 0; long long ans = 0,k; while(s[pre] == ' ') pre ++; if(s[pre] == '-') {原创 2021-05-15 08:29:59 · 145 阅读 · 0 评论 -
旋转链表 (2)
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 这题写了好多次,老是记不住关键点。 class Solution { public: ListNode* reverseBetween(ListNode* head, int left, int right) { ListNode *dummy = new ListNode();//很关键,首原创 2021-05-07 20:43:57 · 117 阅读 · 0 评论 -
快慢指针(删除数组重复项)
给出一个有序数组如 vector<int> nums {0,0,1,1,1,2,2,3,3,4}; 原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不能一边遍历一遍删除,因为这样会改变数组的大小,很容易出bug。用快慢指针将重复的元素移动到数组后面,不同的移到前面,才是正解。 int pre = 0, cur = 0, n = nums.size(); pre在左,cur在右,刚开始都指向下标为零的位置。 循环遍历nums,如果pre和cur指向的元素大小相同,原创 2021-05-06 13:58:05 · 325 阅读 · 0 评论 -
JAVA 新手对于继承的理解
class father{ public String name; public int age; void setname(String name) { this.name = name; } } class son extends father{ public String name; } 这就是继承。son继承了father 如果这时候来一行 son test = new son(); 根据我的理解,其实new出来的是一个son,son里又有一个father。son里是没有age属原创 2021-05-04 13:58:09 · 141 阅读 · 0 评论