最近做题,有的题解法里面有好多算法,我想问遇到这种情况是先自己思考然后慢慢找到自己的办法来解决,还是直接去学一种算法来解决
chatgpt:
作为刚接触编程不久的新手,算法的学习可以先放在后面,建议先学习编程的基础知识和常用的数据结构,例如数组、链表、栈、队列、树等等,这些知识对于编程的实践和问题解决都非常有用。在掌握了这些基础知识之后,再逐步学习一些简单的算法,例如排序算法、查找算法等等。
当你遇到一个问题时,首先应该思考自己能否用已经学过的知识解决它。如果能够用已有的知识解决,那就直接解决,不需要去学习新的算法。如果无法解决,那就可以去寻找一些相关的算法进行学习,但也不要盲目地学习过多的算法。建议选择一两种比较基础的算法进行学习,例如贪心算法、动态规划算法等等,然后通过练习题目来加深理解和掌握。
总之,算法的学习是需要时间和经验的,不能一下子学会所有的算法。在编程的过程中,不断积累经验和知识,慢慢地提高自己的解决问题的能力和思维能力,这才是最重要的。
我开始学Python的时候没有提前接触过算法,深入的东西放到后面什么基础代码完全掌握了再接触也不迟(除非学完基础立即开始做项目。。。但不太有可能),有的人刚开始Python就接触哈希算法和二叉树之类的,反而会造成一种不良思维,对深入学习并不有利,还会丧失学习兴趣!!
这个取决于你是否用到算法,包括学校的教学计划,以及你是否对此感兴趣。
所有算法题,我个人推荐自己做一遍,那怕是错误的,或者效率低的,自己先做出来,这样会对题目有个深刻印象,并且知道哪里会出现问题,然后在实在无法继续优化的时候看题解,按照别人的方法实现一遍(不是抄),并透彻理解这个解法与自己代码的差异部分有哪些
算法题简单来说,是一个见多识广的过程,当做的够多,见得够多,那么遇到新的题目,就会自然而然的按照自己的经验选择相对较优的做法去实现了
在刚开始学习编程的时候,不需要提前学习算法,可以先尝试用自己的思路解决问题。但是随着学习的深入,算法的学习将会变得十分重要。因为算法是解决问题的有效方法,能够提高代码的效率和可读性。当你遇到一个问题时,可以先尝试自己思考,如果无法解决,可以尝试查找相关算法并学习应用。例如,在解决一个搜索问题时,可以使用深度优先搜索算法或广度优先搜索算法来解决。以下是Python中使用深度优先搜索算法解决迷宫问题的代码示例:
maze = [[0, 1, 0, 0, 0],
[0, 1, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 1, 0]]
def dfs(maze, start, end):
stack = [(start, [start])]
visited = set()
while stack:
vertex, path = stack.pop()
if vertex == end:
return path
if vertex not in visited:
visited.add(vertex)
for neighbor in get_neighbors(maze, vertex):
stack.append((neighbor, path + [neighbor]))
return None
def get_neighbors(maze, vertex):
neighbors = []
row, col = vertex
if row > 0 and not maze[row-1][col]:
neighbors.append((row-1, col))
if row < len(maze)-1 and not maze[row+1][col]:
neighbors.append((row+1, col))
if col > 0 and not maze[row][col-1]:
neighbors.append((row, col-1))
if col < len(maze[0])-1 and not maze[row][col+1]:
neighbors.append((row, col+1))
return neighbors
start = (0, 0)
end = (4, 4)
path = dfs(maze, start, end)
print(path)