(如数据结构算法题)编程不是难在处理问题的思路,而在用代码将思路描述出来。

初学编程总觉得好简单,不就是加减乘除,或者什么,思路太简单了,就这样这样做就可以了,代码就不用写了,反正这么简单。

其实难就难在,如何用代码这种语言将你的思路书写下来。

写代码会受到很多的限制,你想要这样干,但你要如何让机器这样干。

  编程所要做的唯一一件事就是:拆分。

  拆分一整个件事成为一个个步骤---->流程图。

  拆分流程图中每一个步骤成为更详细的、具体的----->一条条代码。

  所以流程图是人脑中的大逻辑框架,不画出这个大框架,则会在更细节的代码中迷失。

由于拆分出来的一个个细节步骤(每条代码)太过于细碎,人很容易犯错,有时候很容易想当然,于是就会跳过或略过一些步骤,导致机器执行not as expected.

思考的时候就要把每个细节都拆分出来,想好每一步细节之后,每个细节要与代码对应好。

像C这种面向过程的语言,有时候调试经常是调整一些代码的先后执行顺序,代码就正常运行了,这就是在思考细节的时候想当然造成的,没思考清楚就跑去写代码,导致代码的逻辑越来越混乱。

依靠调试来解决问题是很不好的习惯,会给你的思维漏洞提供借口,你思维的缜密性难以提高,you will always take your mistakes for granted,你想反正还有调试呢怕什么,但是调试的效果远不如你一次吧框架想清楚,不会把代码逻辑搞得乱七八糟。

  

原文地址:https://www.cnblogs.com/aristocracy/p/9780688.html

时间: 2024-10-12 20:17:16

(如数据结构算法题)编程不是难在处理问题的思路,而在用代码将思路描述出来。的相关文章

数据结构算法题-数组字符串

1.查找最小的 k 个元素(数组) 题目:输入 n 个整数,输出其中最小的 k 个. 例如输入 1,2,3,4,5,6,7 和 8 这 8 个数字,则最小的 4 个数字为 1,2,3 和 4. k_big.c 2.查找最小的 k 个元素(数组) 题目:输入 n 个整数,输出其中最小的 k 个. 例如输入 1,2,3,4,5,6,7 和 8 这 8 个数字,则最小的 4 个数字为 1,2,3 和 4 k_big.c 3.判断一个字符串是否对称 1 bool CheckStr(const char*

微软等数据结构+算法面试100题全部答案集锦

1.把二元查找树转变成排序的双向链表. 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表. 要求不能创建任何新的结点,只调整指针的指向. 10  / \  6 14  / \ / \  4 8 12 16 转换成双向链表 4=6=8=10=12=14=16. 首先我们定义的二元查找树节点的数据结构如下: struct BSTreeNode  {  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child

一道看似非常难的面试算法题

这是昨天面试百度时碰到的一道算法题:任意数分三组,使得每组的和尽量相等.由于时间仓促,加之面试时头昏脑涨,这道题没做出来甚至没有给出思路,这让我多少有些遗憾和不甘.因为最近接触算法的东西较多而且本身对算法感兴趣,所以回家之后绞尽脑汁想把这题做出来.其实刚看到这题时感觉不难,但是因为数字个数及数值的不确定,我感觉这题越想越难.昨天一晚上没有睡好,甚至做梦都在想这题! 今天上午在多个群里问了这题,都没有给出思路,真是绝望至极.很多人都说 n/3 的思路,其实这种思路一开始就是死胡同.本人属于那种不会

大公司面试经典数据结构与算法题C#解答

几个大公司(IBM.MicroSoft and so on)面试经典数据结构与算法题C#解答 1.链表反转 我想到了两种比较简单的方法 第一种是需要开一个新的链表,将原链表的元素从后到前的插入到新链表中(也就是原链表第一个元素被插入成新链表的最后一个元素). 第二种是不需要开新的链表,而是逐步反转原链表中元素的指向,例如: 原链表是 1->2->3->4->null  被  逐步修改为 ①2->1->null.3->4->null ②3->2->

数据结构与算法题整理

未经各位前辈允许,擅自整理,还望谅解.感激不尽. ↓↓↓↓一一一2016.9.23 如何计算时间复杂度 平均查找长度详解 ↓↓↓↓一一一2016.9.15 找工作知识储备(3)---从头说12种排序算法:原理.图解.动画视频演示.代码以及笔试面试题目中的应用(该博主博客很多面试数据结构与算法方面的干货!推荐!) 找工作笔试面试那些事儿(15)---互联网公司面试的零零种种和多家经验(同为该博主,这篇讲大纲) ↓↓↓↓一一一2016.9.14 微软公司等数据结构+算法面试100题(第1-100题)

前端如何应对笔试算法题?(用node编程)

用nodeJs写算法题 咱们前端使用算法的地方不多,但是为了校招笔试,不得不针对算法题去练习呀! 好不容易下定决心 攻克算法题.发现js并不能像c语言一样自建输入输出流.只能回去学习c语言了吗?其实不用,node也能很好帮助我们完成!且笔试都支持用nodeJs,实际上就是用JS编程,只是用到了node的一些输入输出流方法. 我们看看最简单的使用模板:(转载) var readline = require('readline'); rl = readline.createInterface({ i

python入门、python数据分析(numpy、matplotlib、sklearn等)tensflow、爬虫、机器学习、深度学习、自然语言处理、数据挖掘、机器学习项目实战、python全栈、PHP、java、java web、openCV、hadoop、matlab、android、数据结构算法和刷题等教学视频

扫描二维码加好友购买视频,绝对优惠,谢谢支持. python入门和进阶熟练教学视频 入门: 进阶: python数据分析教学视频 python数据分析晋级班 tensorflow教程及实战 python爬虫教学 机器学习课程 深度学习课程 机器学习项目班 自然语言处理教学视频 python全栈教学视频 数据挖掘视频 PHP教学视频 java java web openCV教学视频 Hadoop教学视频 matlab教学 andriod教学视频 数据结构算法班及面试班 原文地址:https://w

机器学习算法与编程实践之中文文本分类

这周学习了机器学习算法与编程实践第二章--中文文本分类的部分内容.该章以文本挖掘为大背景,以文本分类算法为中心,详细介绍了中文文本分类项目的相关知识点. 一.文本挖掘与文本分类的概念 被普遍认可的文本挖掘的定义如下:文本挖掘是指从大量文本数据中抽取事先未知的.可理解的.最终可用的知识的过程,同时运用这些知识更好的组织信息以便将来参考. 文本挖掘的7个主要领域有:(1)搜索和信息检索,(2)文本聚类,(3)文本分类,(4)Web挖掘.(5)信息抽取,(6)自然语言处理,(7)概念提取. 而文本分类

笔试算法题

转自:http://www.cnblogs.com/xwdreamer/archive/2011/12/13/2296910.html 1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  i