《剑指offer》刷题笔记(发散思维能力):求1+2+3+...+n
《剑指offer》刷题笔记(发散思维能力):求1+2+3+…+n
- 转载请注明作者和出处:http://blog.csdn.net/u011475210
- 代码地址:https://github.com/WordZzzz/Note/tree/master/AtOffer
- 刷题平台:https://www.nowcoder.com/
- 题 库:剑指offer
- 编 者:WordZzzz
- 剑指offer刷题笔记发散思维能力求123n
- 题目描述
- 解题思路
- C版代码实现
- 递归
- 二维数组
- Python版代码实现
- 递归
- reduce
题目描述:
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
解题思路:
不能使用乘除法就意味着不能使用公式,循环和条件判断也不能用,所以只能用递归,递归的停止条件用逻辑与来终止(短路特性),即当n为0时,不再递归直接返回结果。
在网上还找了一种解题思路,就是利用计算二维数组的元素数量来实现的,妙,实在是妙。
C++版代码实现:
递归:
class Solution {
public:int Sum_Solution(int n) {int ans = n;ans && (ans += Sum_Solution(n - 1));return ans;}
};
二维数组:
class Solution {
public:int Sum_Solution(int n) {bool a[n][n+1];return sizeof(a)>>1;}
};
Python版代码实现:
递归:
# -*- coding:utf-8 -*-
class Solution:def __init__(self):self.sum = 0def Sum_Solution(self, n):# write code heredef qiusum(n):self.sum += nn -= 1return n>0 and self.Sum_Solution(n)qiusum(n)return self.sum
reduce:
# -*- coding:utf-8 -*-
class Solution:def Sum_Solution(self, n):# write code heredef f(x,y):return x+yreturn reduce(f,range(n+1))
系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~
完的汪(∪。∪)。。。zzz
《剑指offer》刷题笔记(发散思维能力):求1+2+3+...+n相关推荐
- C++剑指offer刷题笔记
说明:本文是本人刷题后整理的剑指offer1-68题的题解笔记,编程语言为c++. 主要参考刷题笔记网址:leetcode剑指offer 次要参考刷题笔记网址:牛客剑指offer 剑指OFFER 面试 ...
- 剑指offer刷题笔记-篇2
文章目录 剑指offer 前言 机器人的运动范围 剪绳子 二进制中1的个数 数值的整数次方 从1到n的位数 移除链表元素 删除链表中重复的结点 *正则表达式匹配 *表示数值的字符串 调整数组顺序 链表 ...
- 剑指offer刷题笔记
最近LeetCode上的<剑指offer>的题刷的差不多了,只剩几道无聊的题了.现在把做题过程中的记录放在这里,作为将来查看的笔记,也同时欢迎大家指出其中的不当之处(QQ).虽然博主现在仍 ...
- 【LeetCode 剑指offer 刷题笔记】汇总(已完成)
前言 不知不觉就结束了自己的秋招之路,虽感觉有些艰辛但是收获很多.找工作那段时间做了很多学习笔记,这是数据结构与算法相关的一部分笔记,这一块除了复习相关教科书,还有就是刷LeetCode和< ...
- 【剑指Offer】剑指Offer刷题笔记
数组和字符串 剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个 ...
- 力扣(LeetCode)剑指offer刷题笔记(java),已完结!!!
文章目录 3.数组中重复的数字 4.二维数组中的查找 5.替换空格 6.从尾到头打印链表 7.重建二叉树 9.两个栈来实现一个队列 10-1.斐波那契数列 10-2.跳台阶 11.旋转数组的最小数字 ...
- 最新剑指offer刷题笔记js(含新旧俩版所有题)
目录 一.面试需要的知识() 二.高质量代码 三.解决面试题的思路 四.优化时间和空间效率 五.面试中的各项能力 一.面试需要的知识 数据结构.算法(查找.排序.递归.循环和位运算) 1.求平方根 思 ...
- 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /** * Definition for a binary tree no ...
- 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...
- 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...
最新文章
- Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
- ios 打电话结束返回到应用中
- Linux 终端部分重要快捷键
- 设置Eclipse智能提示
- 2/19 福建四校联考
- 矩阵快速幂 HDU3483
- Kotlin 学习笔记(七)—— Kotlin类与对象之属性与字段
- git clone大文件EOF错误
- 常用tab选项卡代码
- PS更改显示的尺寸单位
- 【回归预测-ELM预测】基于遗传算法优化极限学习机实现风电数据回归预测附matlab代码
- 依分布收敛、依概率收敛、均方收敛、几乎处处收敛
- java-web阶段性总结
- Shel编程之免交互5
- 【安全篇 / 反病毒】(5.6) ❀ 01. 反病毒的基本配置 ❀ FortiGate 防火墙
- Node.js的线程和进程*2014年4月的文章
- 浏览器设置跨域及允许携带cookie
- 7-2 分解素因子 (10 分)
- LearnGL - 06.1 - Matrix - 矩阵02 - 向量空间、向量空间的维度、为何矩阵乘法要有 [M x N] * [N * P] 的 N 要相等的限制
- 深入理解Spark RDD——RDD信息对象
热门文章
- 052试题 86 - crosscheck 命令及expried
- 怎样上android官方下载,【图文教程】如何安装 iOS/Android(安卓)触动精灵?
- python 百度云搜索引擎入口_2016最新百度云网盘搜索引擎源码,附带Python爬虫+PHP网站+Xunsearch搜索引擎...
- Linux -- 手动配置静态IP
- windows电脑cmd命令查看网卡的物理地址(mac地址)
- 32位CPU最大支持4G内存
- Scons安装和使用
- NCE4 L46 Hobbies
- python 右键没有EDIT with IDLE选项 图文讲解解决方法
- 牛客题——点击消除(go)