主页

力扣1到n求和不使用乘除法循环语句方法总结

题目 剑指 Offer 64. 求1+2+…+n; 剑指 Offer 64. 求1+2+…+n 求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 示例 1: 输入: n = 3 输出: 6 示例 2: 输入: n = 9 输出: 45 限制: 1 <= n <= 10000 想法1: 库函数 我的想法比较简单..就是调用库函数, 例如Python自带的sum()函数, 代码的话就是简单的一行: class Solution: def sumNums(self, n: int) -> int: return sum(range(n+1)) ...

阅读更多

C++实战笔记题目

关于 C++,下面哪个描述是错误的? C++ 程序从“诞生”到“消亡”,要经历四个阶段:编码、预处理、编译和运行 “编码”是 C++ 程序生命周期中最重要的阶段 C++ 支持“多范式”编程,各个编程范式彼此独立,不相互依赖 “面向过程”和“面向对象”是 C++ 中最基本的编程范式 A,正确,参见第 1 讲。 B,正确,编码阶段决定了后面三个阶段的质量。 C,错误,编程范式不是完全独立的,而是互相依赖互相渗透,没有绝对明确的界限。 D,正确,“面向过程”和“面向对象”是 C++ 最早支持的两个范式。 现代 C++ 内置了对并发、线程的支持,下面哪些说法是正确的? call_...

阅读更多

线性排序算法计数,基数,桶排序c++

写在前面 总结算法导论中的线性排序算法, C++实现. 计数排序 通过给定范围计数完成排序, 需要额外空间, 但是时间复杂度能到线性, 是稳定的排序算法. void ConutingSort(vector<int>& arr) { int n = arr.size(), k = *max_element(arr.begin(), arr.end()); vector<int> C(k + 1), B(n); for (int num : arr) C[num]++; // 前缀和 for (int i{}; i < k; ++i) C[i + 1] += C[i]; for (int num ...

阅读更多

归并排序的递归迭代写法(c++)

写在前面 写一下归并排序(Merge Sort), 递归写法和迭代写法. #include <iostream> #include <vector> #include <climits> using namespace std; /* 归并排序 */ // 此函数用于打印输出数组 void printArray(vector<int> arr) { for (size_t i = 0; i < arr.size(); ++i) cout << arr[i] << " "; cout << endl; } 递归方法 下面的代码是算法导论中的. 感觉比较复杂. // ...

阅读更多

希尔排序的思路与c++实现

写在前面 写一下希尔排序, 其实就是插入排序的升级版, 不是一次移动一个, 而是一次移动一组. 回顾插入排序 void InsertionSort(vector<int> &arr) { int n = arr.size(); for (int i = 1; i < n; ++i) { int tmp = arr[i], j = i; for (; j >= 0 && arr[j - 1] > tmp; --j) arr[j] = arr[j - 1]; arr[j] = tmp; } } 原理 这里参考了维基百科的原理分析, 希尔排序 ...

阅读更多

谈谈macos下的python版本管理问题

写在前面 MacOS上有很多Python, 管理起来可是个麻烦事, 并且一不小心就把包安到系统自带的Python里面了, 加上Python2的历史遗留问题, 让MacOS下的Python版本管理难上加难. 如果凑巧还是homebrew的用户的话, Python又多了一个, 如果不巧电脑又是m1系列芯片的mac, 那么在brew安装时候, 还要安装Rosetta2转译的Python, 这么多的Python是不是头昏眼花了… 当然啦, MacOS12.3的发布去掉了MacOS系统自带的Python2.7, 也算是解决了一个老大难问题了. 下面来说说如何区分MacOS下的Python, 以及如何为指定的Python安装包. 区分Python 以我的电脑为例, 我的电脑是m1...

阅读更多

力扣只出现一次的数字系列总结(c++)

写在前面 最近用到的异或运算越来越多了, 而其中又以只出现一次的数字为经典题型, 下面总结总结一下只出现一次的数字系列. 代码均为C++. 前置知识 逻辑表达式 下面这些结论都可以自己写一个真值表推导得出. 符号 运算 性质 $\bar\ $ 逻辑非 - $\cdot$ (也可省略不写) 逻辑与 $xy=yx$, $x\cdot1=x$$x\cdot x=x$, $x\cdot\bar x=0$, $+$ 逻辑或 $x+y=y+x$, ...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits