There is no question about it, it has been definitely determined that the Vikings were here 500 years before Columbus. The Vikings established a settlement in Newfoundland that lasted for about 10 years, and the remains of that settlement are still there.
The Vikings didn't stay longer because the Indians didn't want them to stay. The first time they saw Indians was when the Vikings came across 10 of them taking naps under their overturned canoes — and the Vikings killed them. That did make for a very good first impression. They tried trading, but the Vikings felt menaced and outnumbered, and knew the Indians did not want them around. The Vikings later returned to North America, but only for trading. They never tried to settle again.
There is also credible evidence that a Chinese fleet visited America on their way to present-day Kenya.
Columbus gets the credit as he was the first lasting European contact with the Americas, starting European exploration, conquest, and colonization of America. Columbus started the transatlantic slave trade and has been accused of starting the genocide of the Hispaniola natives. Columbus himself saw his accomplishments mostly as spreading Christianity.
During his first voyage in 1492, instead of arriving at Japan as he had intended, Columbus landed on an island in the Bahamas that he named "San Salvador". Over the next three more voyages, Columbus visited the Greater and Lesser Antilles, the Caribbean coast of Venezuela and Central America, claiming all of it for the Crown of Castile (part of present day Spain).