Argument out of range.

I am using the following script to create an Enemy Ai the issue I have hit is if there is no target it gives me the Argument out of range. If I make it add its self to the array when there is no target the ai just starts to fly forward nonstop.

using UnityEngine;
using System.Collections;
using System.Collections.Generic; 

public class EnemyAi : MonoBehaviour 
{
	//public Transform target;//Targets.
	public int moveSpeed;//Speed enemy can move.
	public int rotationSpeed;//Speed enemy can rotate.
	public int detectionDistance;//The distance the enemy can detect you from.
	public List<Transform> targets = new List<Transform>();
	
	
	
	private Transform myTransform;//Save for the transform.
	
	void Awake()
	{
		myTransform = transform;//This saves our transform so we dont have to look it up all the time.	
		//targets.Add(myTransform);
	}
	
	
	void Update ()
	{
	
		myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(targets[0].position - myTransform.position), rotationSpeed * Time.deltaTime);//Makes it look at us using the speed we set over time.

		myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
		
	}
	
	 void OnTriggerEnter(Collider other) //When collided
	{
		if(other.tag == "Player")
		{
			targets.Add(other.transform);
			//targets.Remove(myTransform);
		}
		
		
	}
	void OnTriggerExit(Collider other) //When collided
	{
		if(other.tag == "Player")
		{
			targets.Remove(other.transform);
			//targets.Add(myTransform);
		}
		
		
	}
}

At the start of Update check if the count is 0 and return if it is:

 void Update()
  {
       if(targets.Count < 1) return;

        ...